UITextField - 在键盘和 UIPickerView 之间切换

Posted

技术标签:

【中文标题】UITextField - 在键盘和 UIPickerView 之间切换【英文标题】:UITextField - Switch Between Keyboard and UIPickerView 【发布时间】:2010-01-20 15:45:21 【问题描述】:

我正在开发一个使用 Core Data 的 iPhone 应用程序。其中一个视图控制器允许用户编辑关于咖啡的信息,它有一个 UITextField,用户可以在其中输入一个描述咖啡类型的“标签”。

我想设置 UITextField 以在用户单击 UITextField 的主要区域(输入新标签)时显示键盘,并使用一个按钮作为其 rightView 来显示一个 UIPickerView 允许用户从已输入的已知标签列表中进行选择,即:

---------------------------------------------
|This area should display keyboard | button |
---------------------------------------------

我很困惑的是,如果用户来回点击,如何在 firstResponder 键盘和 UIPickerView 之间来回切换。

肯定有人已经这样做了,所以任何关于如何设置(或者如果我正确使用 iPhone 的 UI 元素)的提示都会很棒!谢谢!

【问题讨论】:

【参考方案1】:

您可以使用以下 2 个参考来跟踪您的活动文本字段和选择器:

UITextField *activeField;
UIPickerView *activePicker;

每当文本字段开始编辑时,您就可以指定 activeField 指向它。采摘者也是如此。我还假设您已经有了这个特殊文本字段的参考。

现在,在文本字段和选取器视图的事件处理程序中,您可以控制文本字段开始/结束编辑以及选取器视图出现/消失时发生的情况。如果您有其他文本字段,则需要通过将其与我们的 activeField 进行比较来检查特殊文本字段是否触发了事件。

我需要提醒您,虽然标记场景在联系人应用程序中的实现方式有所不同。这是标准方式,对您来说也更容易。

【讨论】:

【参考方案2】:

这是关于如何自定义键盘的article。请记住,您不能直接声明自己的 UIKeyboard 实例,也不能对其进行子类化,因此您唯一的希望就是找到键盘视图,然后从那里进行修改。

【讨论】:

【参考方案3】:

对于键盘,您需要注意委托回调中的 becomeFirstResponder/resignFirstResponder。无论您的比喻是完成或完成,您都应该辞去响应者的职务。

【讨论】:

以上是关于UITextField - 在键盘和 UIPickerView 之间切换的主要内容,如果未能解决你的问题,请参考以下文章

怎样在键盘顶部添加UITextField和一个UIButton??

UITextField - 在键盘和 UIPickerView 之间切换

UITextField 光标和键盘问题

在 UITextField 和软件键盘 ios 之间提供最小填充

iOS 键盘挡住UITextField

iOS 中的 UITextField 和键盘管理问题