我是iOS开发的新手,并且最近了解到要使屏幕键盘消失,我们必须始终在文本视图上调用resignFirstResponder。这导致文本视图放弃它的第一响应者状态,因此键盘消失,因为文本视图不需要响应。
但是我也注意到有一个使用firstFirstResponder方法来使视图成为第一个响应者。但是,永远不会在文本视图上调用此方法。因此,当从未调用该方法时,textview何时/如何成为第一响应者?(至少,由我。我不确定它是否在系统的其他地方被调用)
我的理论是,在能够辞去第一响应者身份之前,必须已经是第一响应者。
答案 0 :(得分:1)
firstResponder
状态。只要为UITextField
/ UITextView
启用了用户互动,就会在点按时显示键盘。
您可以使用委托方法textViewDidBeginEditiing
或更广泛地通过侦听键盘外观通知(UIKeyboardWillShowNotification
和UIKeyboardDidShowNotification
)来监控它。
此外,有一些方法可以解除键盘而无需调用相应的方法resignFirstResponder
(例如在容器视图上调用endEditing:
或设置滚动视图的UIScrollViewKeyboardDismissMode
)
注意:在模拟器中,即使所有键盘都正常工作,键盘仍可能无法显示。在这种情况下,您只需要确保为模拟器切换键盘硬件(CMD + K)。
答案 1 :(得分:0)
如果您想要提供UITextField焦点并显示键盘,请自行调用becomeFirstResponder。
这对基本上是窗体的视图控制器很有用。例如,如果用户按下“注册”按钮,您可能会推送带有几个文本字段的视图控制器,并在第一个文本字段上调用yesFirstResponder以自动为其提供焦点并打开键盘。