2009-11-09 183 views
2

我正在编写一个iPhone应用程序,要求用户输入可能包含小数点(货币值,百分比等)的多个值。值中的小数位数变化。问题在于数字键盘不包含用于输入小数点的键。带小数点的iPhone数字键盘

当我锁我的电话,说来了输入密码有一个自定义按钮,拨打紧急电话(如下面的截图所示)的数字键盘:

Numberpad with custom button http://img25.imageshack.us/img25/6426/photoejg.jpg

有谁知道如何用小数点按钮或自定义按钮创建数字键盘(如上面的紧急呼叫按钮)?

谢谢。

回答

7

有没有苹果认可的方式来编辑现有的键盘。如果您希望他们允许,请提交功能请求。

这就是说,在大多数应用程序中,键盘(UIKeyboard的实例)是一个单独的UIWindow,您可以遍历应用程序中的窗口并开始添加自定义子视图,以响应适当的触摸操作。通过遍历[[UIApplication sharedApplication] windows]并检查描述是否包含字符串UIKeyboard来查找它。有关此方法和示例代码的更多信息,请参阅this answer

另一种方法是创建自己的自定义视图并从头开始构建键盘。但是,如果你这样做的话,要小心,因为它需要大量的手工工作,不仅在创建键盘和获得触摸行为来匹配Apple的时候,而且在你添加的任何控件都会带来常规键盘 - 你需要重定向诸如becomeFirstResponder之类的东西来展示你自己的键盘,而不是Apple的。

编辑:作为ZaBlanc指出,iOS设备的新版本有办法与inputViewinputAccessoryView属性来做到这一点。有关详细信息,请参阅UIResponder类别参考。

+1

UITextField支持3.2+的inputView属性,因此这更容易提供您自己的视图。 :-)只是替换键盘的位置。 inputAccessoryView还可让您轻松添加工具栏。 – ZaBlanc 2010-07-07 21:08:33

1

创建一个包含UIView和一堆按钮的UIViewController。现在你的键盘可以拥有你想要的任何东西。

2

将UIKeyboardType设置为UIKeyboardTypeDecimalPad

适用于iOS 4.1及更高版本。