繁体   English   中英

UITextView何时/如何成为第一响应者?

[英]When/How does a UITextView become a First Responder?

我是iOS开发的新手,最近了解到,要使屏幕键盘消失,我们必须始终在文本视图上调用resignFirstResponder。 这导致文本视图放弃其第一响应者状态,因此键盘消失了,因为文本视图不需要响应。

但是我也注意到,有一个beginFirstResponder方法可以使视图成为第一响应者。 但是,永远不会在文本视图上调用此方法。 因此,何时/如何从未调用该方法时textview如何成为第一响应者?(至少是我。我不确定是否在系统中的其他位置调用了它)

我的理论是,必须先成为第一响应者,然后才能辞去第一响应者的身份。

当用户点击文本字段时,将自动为您处理firstResponder状态。 只要为UITextField / UITextView启用了用户交互,在轻击时键盘就应该出现。

您可以使用委托方法textViewDidBeginEditiing或更广泛地通过侦听键盘外观通知( UIKeyboardWillShowNotificationUIKeyboardDidShowNotification )来UIKeyboardWillShowNotification进行UIKeyboardDidShowNotification

此外,还有一些方法可以关闭键盘,而无需调用相应的方法resignFirstResponder (例如在容器视图上调用endEditing:或设置滚动视图的UIScrollViewKeyboardDismissMode )。

注意 :在模拟器中,即使所有键盘都正常工作,键盘仍可能不出现。 在那种情况下,您只想确保模拟器的键盘硬件已切换(CMD + K)。

如果要给UITextField焦点并显示键盘,则可以自己调用成为firstFirstResponder。

这对于基本上是表单的视图控制器很有用。 例如,如果用户按下“注册”按钮,则可以推入带有几个文本字段的视图控制器,并在第一个文本字段上调用beginFirstResponder以使其自动聚焦并打开键盘。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM