这是一个两部分的问题:
1)为什么我们首先需要让 UITextField 成为第一响应者?即使它不是第一响应者,它也会起作用。
2)为什么当我们发送消息 resignFirstResponder 时键盘消失了?该方法是否还会将键盘作为副作用删除?为什么 UITextView 中没有单独的方法来指示它移除键盘?
这是一个两部分的问题:
1)为什么我们首先需要让 UITextField 成为第一响应者?即使它不是第一响应者,它也会起作用。
2)为什么当我们发送消息 resignFirstResponder 时键盘消失了?该方法是否还会将键盘作为副作用删除?为什么 UITextView 中没有单独的方法来指示它移除键盘?
Why do you want the resignFirstResponder message not to remove the keyboard?
只有当您发送becomeFirstResponder消息或在文本字段内单击时,UITextField 才会变为活动状态(光标在文本字段内闪烁并出现键盘)。
resignFirstResponder消息使文本字段处于非活动状态(光标从文本字段中移除)。如果光标不在文本字段中,那么为什么还需要键盘呢?您会将在键盘上键入的文本发送到哪里?这就是为什么当文本字段辞去第一响应者时键盘会自动消失的原因。
resignFirstResponder是 UITextView 中指示它移除键盘的方法。
您也可以将 resignFirstResponder 发送到 TextView,但实际上您可能想问的是 textview 没有委托方法,例如 textfield 即 textFieldShouldReturn 的委托方法。
所以回答你的问题,因为 textview 是多行的,按回车键会将光标带到下一行。您需要通过按下键盘将完成按钮显式放置在键盘上方的单独视图中,您可以将 resignFirstResponder 消息发送到 textview。