acessoryView 内的 UITextField -- 清除按钮未检测到触摸

Posted

技术标签:

【中文标题】acessoryView 内的 UITextField -- 清除按钮未检测到触摸【英文标题】:UITextField inside acessoryView -- clear button not detecting touches 【发布时间】:2015-07-29 04:13:11 【问题描述】:

我想将输入放在附件视图中,以便将其连接到键盘。我是这样做的:

    隐藏输入框,仅用于启动键盘 “添加项目”按钮使隐藏输入成为第一响应者。这将打开带有配置的附件视图的键盘 配置的附件视图是从 xib 加载的。它包含一个标签、背景和一个带有一些配置选项的 UITextField,例如不自动更正并有一个清除按钮。 我告诉附件视图中的 UITextField 作为第一响应者,因为我希望在用户键入时获得焦点。 当用户完成后,我在附件视图中的可见文本字段和首先启动键盘的隐藏文本字段上都放弃了FirstResponder。我尝试只对其中一个进行操作 - 没有关闭键盘。

这一切正常——我可以从字段中读取文本,在addcancel 之间更改我的按钮,并验证用户提供的输入。

看起来是这样的:

唯一不起作用的是取消按钮。它会在应该出现的时候出现,但它从不检测水龙头。附件输入字段中的清除按钮是否存在已知和损坏的信息?我什么都找不到。

我尝试使用textFieldShouldClear 委托方法,但它永远不会触发。其他委托方法(textFieldShouldReturnshouldChangeCharactersInRange)工作正常。

【问题讨论】:

【参考方案1】:

哎呀。这完全是因为在 XIB 的***视图中,我将“用户交互启用”设置为 false。我从来没有想过这会级联到子视图,包括本机控件,但当然是这样。

我最初禁用了用户交互,这样我就不必手动调整附件视图的大小——它可以是全屏的,点击它就会进入后面的 UI。现在,我启用了用户交互,并在将视图从 xib 中拉出后将其调整为较小的高度,一切正常。

【讨论】:

感谢这个帖子:iphonedevsdk.com/forum/iphone-sdk-development/…

以上是关于acessoryView 内的 UITextField -- 清除按钮未检测到触摸的主要内容,如果未能解决你的问题,请参考以下文章

未调用 TextField 委托方法

为啥 UITextField 的窗口为零?

使用 swift 将多个文本字段添加到 firebase

在 UITextField 之外的任何地方关闭触摸键盘

填写所有 UITextField 时,UIButton 未启用

如何快速确定哪个文本字段处于活动状态