UITextField - 在键盘和UIPickerView之间切换

时间:2010-01-20 15:45:21

标签: iphone uibutton uitextfield uipickerview

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

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

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

我感到困惑的是如何在firstResponder键盘和UIPickerView之间来回切换,如果用户来回点击,则会再次返回。

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

3 个答案:

答案 0 :(得分:1)

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

UITextField *activeField;
UIPickerView *activePicker;

每当文本字段开始编辑时,都会指定activeField指向它。拣货员也一样。我还假设你已经有了这个特殊文本字段的参考资料。

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

我需要提醒您,虽然标记方案在Contacts应用程序中的实现方式不同。这是标准的方式,对你来说也更容易。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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