iPhone:为啥发送消息 resignFirstResponder 会删除键盘?

Posted

技术标签:

【中文标题】iPhone:为啥发送消息 resignFirstResponder 会删除键盘?【英文标题】:iPhone: why does sending the message resignFirstResponder remove the keyboard?iPhone:为什么发送消息 resignFirstResponder 会删除键盘? 【发布时间】:2011-01-07 11:33:57 【问题描述】:

这是一个两部分的问题:

1) 为什么我们首先需要让 UITextField 成为第一响应者?即使它不是第一响应者,它也会起作用。

2) 为什么当我们发送消息 resignFirstResponder 时键盘会消失?该方法是否还会将键盘作为副作用删除?为什么 UITextView 中没有单独的方法来指示它移除键盘?

【问题讨论】:

【参考方案1】:

Why do you want the resignFirstResponder message not to remove the keyboard?

    只有当您发送 becomeFirstResponder 消息或在文本字段内单击时,UITextField 才会变为活动状态(光标在文本字段内闪烁并出现键盘)。

    resignFirstResponder 消息使文本字段处于非活动状态(光标从文本字段中移除)。如果光标不在文本字段中,那么为什么还需要键盘呢?您会将在键盘上键入的文本发送到哪里?这就是为什么当文本字段辞去第一响应者时键盘会自动消失的原因。

    resignFirstResponder 是 UITextView 中指示它移除键盘的方法。

【讨论】:

感谢这有助于我了解急救人员现在如何更好地工作。【参考方案2】:

您也可以将 resignFirstResponder 发送到 TextView,但实际上您可能想问的是 textview 没有委托方法,例如 textfield 存在的委托方法,即 textFieldShouldReturn。 所以回答你的问题,因为 textview 是多行的,按回车键会将光标带到下一行。您需要将完成按钮显式放置在键盘上方的单独视图中,按下它您可以将 resignFirstResponder 消息发送到 textview。

【讨论】:

以上是关于iPhone:为啥发送消息 resignFirstResponder 会删除键盘?的主要内容,如果未能解决你的问题,请参考以下文章

为啥第三次单击按钮时发送消息会崩溃?

应该使用哪个 npm 模块在节点 js 中向 Apple(iphone) 发送推送通知,我们为啥以及如何实现这一点?

Apple Push Notification Service - 通知消息不会发送到 iPhone 设备

发送到 iPhone 中已释放实例的消息

iphone App:当App在后台运行时发送警报消息?

iPhone - SKProductsRequest 和“发送到已释放实例的消息”