ios - 如何检测 iOS 中的第一响应者变化?
问题描述
我有UIViewController
一个UIScrollView
里面有一个。此滚动视图包含其中的一些UITextFields
内容,我希望能够根据焦点字段滚动视图。我的问题是:有没有办法检测第一响应者何时发生UIViewController
变化?所以我可以得到它的框架并更改滚动视图偏移量以使其位于键盘顶部。我已经使用keyboardWillShowNotification
来更改键盘大小。但是当键盘已经显示并且另一个文本字段成为第一响应者时,键盘没有任何更改,我无法检测到哪个是新的第一响应者。
更新:
- 滚动视图位于容器视图控制器中,因此添加了文本字段并且
UITextFieldDelegate
可能不适用于此。除非我可以在添加容器内容后设置委托。 - 我已经管理了键盘通知,它们并不涵盖所有情况。
- 表格中也有
UITextView
s。
解决方案
您应该让您UIViewController
成为 的代表,UITextfields
并且在您的实现中func textFieldDidBeginEditing(UITextField)
,您可以找出正在编辑的文本字段。
供参考:https ://developer.apple.com/documentation/uikit/uitextfielddelegate
推荐阅读
- angular - Angular - 注销用户时,除非刷新页面,否则他们无法重新登录
- php - 如何强制 NGINX 为 PHP 文件添加“Content-Length”标头
- azure-load-balancer - 无法将 VM 添加到标准 Azure 负载均衡器
- html - 使用左侧的 CSS 省略号截断字符串
- html - aria=* 属性与其在光滑滑块中的角色不匹配
- ruby-on-rails - Stripe Ruby on Rails Sources API(Sofort)不工作
- docker - Kubernetes pod 没有到达集群中另一个节点中的 pod
- javascript - 单击功能播放视频在平板电脑上不起作用
- windows - 无法在 Ubuntu 的 bash windows 10 版本上安装
- java - Swagger Gradle 插件在构建期间未正确生成 spring mvc 的 openapi.json 文件