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 之间切换