【发布时间】:2014-05-10 00:00:20
【问题描述】:
我正在使用界面生成器。
在我的 XIB 文件中,我有一个 UIView,我将其用作“容器”视图来保存我的 UITextFields。
我在那个UIView中有三个UITextField。
它们都连接到一个 IBOutlet,并且每个代理都连接到文件的所有者。
Interface Builder 中的所有内容都已选中“启用用户交互”。
我可以选择,意思是点击调出键盘,前两位UITextFields。
当我点击第三个(底部)UITextField 时,没有任何反应。键盘不会出现。
我可以通过编程将其设置为成为FirstResponder,但是当我通过模拟器单击它或通过设备点击它时,什么都没有发生。
我会忽略什么?
【问题讨论】:
-
删除第三个 UITextField,然后复制并粘贴其中一个正常工作的 UITextField。
-
Did you check that all the textFields are inside the view, in the view hierarchy at the left of the editor, when the NIB is selected?.另外,您是否尝试过以编程方式添加其他文本字段?然后使用 addSubview 将它们添加到视图中?
-
是的,它们都放置正确。我删除了 UITextField 并复制/粘贴了一个有效的。它现在可以工作,但是选择区域很小。我必须在 UITextField 顶部附近点击才能调出键盘。如何解决此问题以单击该字段中的任意位置?
-
我同意@eharo2 - 我猜测由于自动布局,当应用程序运行时第三个文本字段不再位于容器 UIView 内。不在其父视图内的子视图可见但不可触摸。为了证明这一点,请将 UIView 设置为“剪辑到边界” - 如果这导致应用程序运行时文本字段消失,那么您已经解决了。
-
未使用自动布局,但我在 UIView 上选择了“剪辑子视图”,最后一个 UITextField 消失了。
标签: ios objective-c uiview uitextfield