[英]When/How does a UITextView become a First Responder?
我是iOS开发的新手,最近了解到,要使屏幕键盘消失,我们必须始终在文本视图上调用resignFirstResponder。 这导致文本视图放弃其第一响应者状态,因此键盘消失了,因为文本视图不需要响应。
但是我也注意到,有一个beginFirstResponder方法可以使视图成为第一响应者。 但是,永远不会在文本视图上调用此方法。 因此,何时/如何从未调用该方法时textview如何成为第一响应者?(至少是我。我不确定是否在系统中的其他位置调用了它)
我的理论是,必须先成为第一响应者,然后才能辞去第一响应者的身份。
当用户点击文本字段时,将自动为您处理firstResponder
状态。 只要为UITextField
/ UITextView
启用了用户交互,在轻击时键盘就应该出现。
您可以使用委托方法textViewDidBeginEditiing
或更广泛地通过侦听键盘外观通知( UIKeyboardWillShowNotification
和UIKeyboardDidShowNotification
)来UIKeyboardWillShowNotification
进行UIKeyboardDidShowNotification
。
此外,还有一些方法可以关闭键盘,而无需调用相应的方法resignFirstResponder
(例如在容器视图上调用endEditing:
或设置滚动视图的UIScrollViewKeyboardDismissMode
)。
注意 :在模拟器中,即使所有键盘都正常工作,键盘仍可能不出现。 在那种情况下,您只想确保模拟器的键盘硬件已切换(CMD + K)。
如果要给UITextField焦点并显示键盘,则可以自己调用成为firstFirstResponder。
这对于基本上是表单的视图控制器很有用。 例如,如果用户按下“注册”按钮,则可以推入带有几个文本字段的视图控制器,并在第一个文本字段上调用beginFirstResponder以使其自动聚焦并打开键盘。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.