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

时间:2015-03-16 17:49:44

标签: ios cocoa-touch uitextview

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

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

我的理论是,在能够辞去第一响应者身份之前,必须已经是第一响应者。

2 个答案:

答案 0 :(得分:1)

当用户点击文本字段时,会自动为您处理

firstResponder状态。只要为UITextField / UITextView启用了用户互动,就会在点按时显示键盘。

您可以使用委托方法textViewDidBeginEditiing或更广泛地通过侦听键盘外观通知(UIKeyboardWillShowNotificationUIKeyboardDidShowNotification)来监控它。

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

注意:在模拟器中,即使所有键盘都正常工作,键盘仍可能无法显示。在这种情况下,您只需要确保为模拟器切换键盘硬件(CMD + K)。

答案 1 :(得分:0)

如果您想要提供UITextField焦点并显示键盘,请自行调用becomeFirstResponder。

这对基本上是窗体的视图控制器很有用。例如,如果用户按下“注册”按钮,您可能会推送带有几个文本字段的视图控制器,并在第一个文本字段上调用yesFirstResponder以自动为其提供焦点并打开键盘。