【问题标题】:TextField becomeFirstResponder Issue for tab key(Keyboard) action选项卡键(键盘)操作的 TextField becomeFirstResponder 问题
【发布时间】:2012-03-06 12:48:56
【问题描述】:

我在 XIB 中有一个视图,我在其中使用了几个文本字段。假设一旦视图加载到窗口中,第一个文本字段就会成为第一响应者。如果我在机器键盘上按 Tab 键导航到下一个文本字段;除了直接文本字段外,所有其他文本字段也将成为第一响应者,并且所有文本字段都会调用文本字段开始编辑委托方法。可能是什么问题 ?这不仅会发生在模拟器中,当我们使用机器的键盘时,也会发生在我们使用 iOS 设备的蓝牙键盘时。

【问题讨论】:

  • 我刚刚遇到了同样的问题。 textFieldShouldBeginEditing 委托方法可用于防止编辑,但问题是如何查找 textFieldShouldBeginEditing 是否因为 tab 键或点击 textField 而被调用。
  • 我也遇到了同样的问题...严重的是为什么苹果不会在 textfield:shouldChangeCharactersInRange:replacementString: 中注册 tab 键

标签: uitextfield uitextfielddelegate becomefirstresponder


【解决方案1】:

按 Tab 键 => 根据视图中文本字段的层次结构导航到下一个文本字段。

当你按下制表符时 - textfieldshouldbeginediting 将被调用的次数与你的文本域一样多 - 意思是 - 5 个文本域 => 按一次制表键,所有 5 个实例都将被调用。 当您按下制表符时 - textfielddidbeginediting 将仅针对新文本字段的实例调用一次 - 因此文本字段的任何逻辑都最好在 textfielddidbeginediting 委托方法中。

这些是委托方法的默认特性,不是问题。

【讨论】:

    猜你喜欢
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多