When/How UITextView 会成为第一响应者吗?
When/How does a UITextView become a First Responder?
我是 iOS 开发的新手,最近了解到要使屏幕键盘消失,我们必须始终在文本视图上调用 resignFirstResponder。这会导致文本视图放弃其第一响应者状态,因此键盘消失,因为文本视图不需要响应。
不过我也注意到有 becomeFirstResponder 方法可以使视图成为第一响应者。但是,永远不会在文本视图上调用此方法。那么 when/how 当该方法从未被调用时,textview 会成为第一响应者吗?(至少,我不确定。我不确定它是否在系统的其他地方被调用)
我的理论是它必须已经是第一响应者才能退出第一响应者状态。
如果您想给 UITextField 焦点并显示键盘,您自己调用 becomeFirstResponder。
这对于基本上是表单的视图控制器很有用。例如,如果用户按下 "Sign Up" 按钮,您可能会按下带有几个文本字段的视图控制器,并在第一个字段上调用 becomeFirstResponder 以自动为其提供焦点并打开键盘。
当用户点击文本字段时,firstResponder
状态会自动为您处理。只要为 UITextField
/UITextView
启用了用户交互,点击时就会出现键盘。
您可以使用委托方法 textViewDidBeginEditiing
或更广泛地监听键盘外观通知(UIKeyboardWillShowNotification
和 UIKeyboardDidShowNotification
)来监视它。
此外,还有一些方法可以关闭键盘而不需要调用相应的方法resignFirstResponder
(例如在容器视图上调用,或者设置滚动视图的UIScrollViewKeyboardDismissMode
).
注意:在模拟器中,即使一切正常,也可能仍然没有出现键盘。在那种情况下,您只想确保为模拟器切换键盘硬件 (CMD+K)。
我是 iOS 开发的新手,最近了解到要使屏幕键盘消失,我们必须始终在文本视图上调用 resignFirstResponder。这会导致文本视图放弃其第一响应者状态,因此键盘消失,因为文本视图不需要响应。
不过我也注意到有 becomeFirstResponder 方法可以使视图成为第一响应者。但是,永远不会在文本视图上调用此方法。那么 when/how 当该方法从未被调用时,textview 会成为第一响应者吗?(至少,我不确定。我不确定它是否在系统的其他地方被调用)
我的理论是它必须已经是第一响应者才能退出第一响应者状态。
如果您想给 UITextField 焦点并显示键盘,您自己调用 becomeFirstResponder。
这对于基本上是表单的视图控制器很有用。例如,如果用户按下 "Sign Up" 按钮,您可能会按下带有几个文本字段的视图控制器,并在第一个字段上调用 becomeFirstResponder 以自动为其提供焦点并打开键盘。
firstResponder
状态会自动为您处理。只要为 UITextField
/UITextView
启用了用户交互,点击时就会出现键盘。
您可以使用委托方法 textViewDidBeginEditiing
或更广泛地监听键盘外观通知(UIKeyboardWillShowNotification
和 UIKeyboardDidShowNotification
)来监视它。
此外,还有一些方法可以关闭键盘而不需要调用相应的方法resignFirstResponder
(例如在容器视图上调用UIScrollViewKeyboardDismissMode
).
注意:在模拟器中,即使一切正常,也可能仍然没有出现键盘。在那种情况下,您只想确保为模拟器切换键盘硬件 (CMD+K)。