UITextField里面的acessoryView - 清除按钮没有检测到触摸

时间:2015-07-29 04:13:11

标签: cocoa-touch uitextfield uitextfielddelegate

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

  1. 隐藏的输入字段,仅用于启动键盘
  2. “添加项目”按钮使隐藏的输入成为第一个响应者。这将打开带有配置的附件视图的键盘
  3. 已从xib加载已配置的附件视图。它包含一个标签,背景和一个带有一些配置选项的UITextField,比如不自动更正并有一个清除按钮。
  4. 我告诉附件视图中的UITextField是第一个响应者,因为我想在用户输入时将焦点放在那里。
  5. 当用户完成后,我在附件视图中的可见文本字段和首先启动键盘的隐藏文本字段上resignFirstResponder。我试着只做其中一个 - 没有关掉键盘。
  6. 一切正常 - 我可以从字段中读取文本,在addcancel之间更改我的按钮,并验证用户提供的输入。

    这就是看起来的样子:

    accessory input view

    唯一不起作用的是取消按钮。它应该出现,但它永远不会检测到水龙头。在配件输入字段中是否有关于清晰按钮的已知和破坏?我找不到任何东西。

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

1 个答案:

答案 0 :(得分:0)

Owch。这完全是因为在XIB的顶级视图中我将“User Interaction Enabled”设置为false。我从来没有想过这会对儿童观点产生影响,包括原生控制,但当然情况就是如此。

我最初禁用了用户交互,因此我无需手动调整配件视图的大小 - 它可能是全屏的,而水龙头则会通过它进入后面的UI。现在,我启用了用户交互,并在将视图拉出xib后将视图调整到一个很小的高度,一切都很好。