AivanF. Asked:2020-01-24 16:23:27 +0000 UTC2020-01-24 16:23:27 +0000 UTC 2020-01-24 16:23:27 +0000 UTC 如何从 UITextField 放置和移除焦点?第一响应者与它有什么关系? 772 如何UITextField在正确的时间激活、聚焦和移除,隐藏键盘?First Responder的概念与此有何关系? ios 1 个回答 Voted Best Answer AivanF. 2020-01-24T16:23:27Z2020-01-24T16:23:27Z 如何实施? 假设你有一些UITextField *textField,那么你可以将焦点移到它并像这样打开键盘: [textField becomeFirstResponder]; 并像这样删除焦点并隐藏键盘: [textField resignFirstResponder]; 如果您需要处理按下Return键盘上的按钮,则需要在控制器中实现协议并将控制器UITextFieldDelegate设置为文本字段委托。那么按钮点击可以通过以下方式进行处理: - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; } 这个怎么运作? iOS 应用程序接收由它们各自的Responder处理的事件。这些是继承自 的类的对象UIResponder,大多数控制器和接口元素都继承自它。 为避免混淆,所有响应者始终按称为响应者链的顺序排列。同时,它们中的第一个可以在视觉上突出显示,显示对自身的关注,就像UITextField背光和打开的键盘一样。但不一定:在 call 之后resignFirstResponder,控制器成为第一响应者,这不会在视觉上出现。 例如,在播放器中,当实现“摇一摇”功能(摇动智能手机以随机播放播放列表)时,第一响应者是view controller拦截相应事件并编辑播放列表的那个。 在此处了解有关此主题的更多信息:了解事件处理、响应者和响应者链。
如何实施?
假设你有一些
UITextField *textField,那么你可以将焦点移到它并像这样打开键盘:并像这样删除焦点并隐藏键盘:
如果您需要处理按下
Return键盘上的按钮,则需要在控制器中实现协议并将控制器UITextFieldDelegate设置为文本字段委托。那么按钮点击可以通过以下方式进行处理:这个怎么运作?
iOS 应用程序接收由它们各自的Responder处理的事件。这些是继承自 的类的对象
UIResponder,大多数控制器和接口元素都继承自它。为避免混淆,所有响应者始终按称为响应者链的顺序排列。同时,它们中的第一个可以在视觉上突出显示,显示对自身的关注,就像
UITextField背光和打开的键盘一样。但不一定:在 call 之后resignFirstResponder,控制器成为第一响应者,这不会在视觉上出现。例如,在播放器中,当实现“摇一摇”功能(摇动智能手机以随机播放播放列表)时,第一响应者是
view controller拦截相应事件并编辑播放列表的那个。在此处了解有关此主题的更多信息:了解事件处理、响应者和响应者链。