【发布时间】:2023-03-24 19:15:02
【问题描述】:
我是 iOS 开发新手,最近了解到要使屏幕键盘消失,我们必须始终在文本视图上调用 resignFirstResponder。这会导致文本视图放弃它的第一响应者状态,因此键盘消失,因为文本视图不需要响应。
不过,我也注意到有 becomeFirstResponder 方法可以让视图成为第一响应者。但是,永远不会在文本视图上调用此方法。那么当从不调用该方法时,文本视图何时/如何成为第一响应者?(至少,由我。我不确定它是否在系统的其他地方被调用)
我的理论是它必须已经是第一响应者才能辞去第一响应者的身份。
【问题讨论】:
-
当用户点击文本字段时为您执行。您可以使用委托方法
textViewDidBeginEditiing或更广泛地通过侦听键盘通知(例如UIKeyboardWillShowNotification)来监控它 -
所以它是自动发生的,即当用户点击文本字段时,系统会通过调用 becomeFirstResponderMethod 为我处理它?
-
是的。只要为 textField/View 启用了用户交互,键盘就会在点击时弹出。也有一些方法可以在不需要调用
resignFirstResponder的情况下处理它(例如在容器视图上调用endEditing:,或设置滚动视图的UIScrollViewKeyboardDismissMode)。在模拟器中,键盘可能仍然没有显示,在这种情况下,您只想确保键盘硬件已切换(Cmd+K) -
您的评论回答了我的问题。如果您想“回答”这个问题,以便我将其标记为正确答案(从而为您提供更多声誉),欢迎您这样做。
-
谢谢,谢谢。答案已发布
标签: ios cocoa-touch uitextview