自定义数字键盘

时间:2010-01-11 05:45:43

标签: iphone objective-c

我想在用户关注文本字段后创建自己的数字键盘,所以我有两个问题呢? 1.我使用“界面生成器”在我的视图中添加文本字段并选择“数字键盘”作为用户输入数字的默认键盘,因此当我单击文本字段时,数字键盘会自动显示,如何停止显示数字键盘?因为我想显示我的数字键盘。

2.如果我在其中自定义带有数字按钮的视图,如何在单击文本字段时检测到该事件?并且在我检测到事件之后是否添加子视图以显示我的自定义数字键盘?

感谢

2 个答案:

答案 0 :(得分:3)

如果您要创建自定义数字键盘(我认为这意味着带有按钮网格的视图),请不要使用UITextField;没有简单的方法可以隐藏原生键盘,并且尽管有这些麻烦,文本字段也没有什么用处。

我建议创建一个自定义UIControl子类。您可以在视图中检测到触摸并以这种方式显示自定义键盘。文档很好地解释了这一点。

答案 1 :(得分:0)

我有一个部分答案,但不是理想答案,我自己也没试过。请查看UITextFieldDelegate协议的文档。

你可以让你的控制器设置textField.delegate = self,然后让它实现textFieldShouldBeginEditing以某种方式显示你的专用键盘然后返回NO,这样它就不会进入编辑模式。当您告诉特殊键盘显示自己时,将其传递给文本字段的引用,以便它知道插入字符的位置。问题是,这可能不会显示光标,也不会让用户移动光标来插入字符等。

所以真的有点难看,但这可能就足够了。 AFAIK没有好办法做到这一点:(