文本字段与键盘交互全解析
1. 重写绘制方法
在子类中,你可以重写 drawText(in:) 和 drawPlaceholder(in:) 方法。你需要绘制指定的文本或者调用父类方法来绘制,若两者都不做,文本将不会显示。这两个方法的参数大小是文本字段文本区域的尺寸,但原点为 .zero 。实际上,你得到的是仅针对文本区域的图形上下文,在给定矩形之外的绘制操作将被裁剪。
2. 召唤和关闭键盘
虚拟键盘的显示与隐藏和文本字段的编辑状态紧密相关,这都与文本字段是否为第一响应者有关:
- 当文本字段是第一响应者时,它正在被编辑,键盘会显示。
- 当文本字段不再是第一响应者时,它停止编辑。若没有其他文本字段(或文本视图)成为第一响应者,键盘将隐藏。若一个文本字段从另一个文本字段接管第一响应者状态,键盘不会关闭。
当用户点击文本字段时,默认该文本字段成为第一响应者,若键盘未显示,它将自动出现。你也可以通过代码控制键盘的显示与隐藏以及文本字段的编辑状态,具体通过文本字段的第一响应者状态来实现:
- 成为第一响应者 :向文本字段发送 becomeFirstResponder 消息,使插入点出现在文本字段内并显示键盘。
- 放弃第一响应者 :向文本字段发送 resignFirstResponder 消息,使文本字段停止编辑并隐藏键盘。实际上, resignFirstResponder
超级会员免费看
订阅专栏 解锁全文
2794

被折叠的 条评论
为什么被折叠?



