带小数点的iPhone数字键盘

时间:2009-11-09 15:07:17

标签: iphone objective-c iphone-sdk-3.0

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

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

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

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

感谢。

3 个答案:

答案 0 :(得分:7)

Apple没有批准编辑现有键盘的方法。如果您希望他们允许,请提交功能请求。

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

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

编辑:正如ZaBlanc指出的那样,较新版本的iOS可以通过inputViewinputAccessoryView属性实现此目的。有关详细信息,请参阅UIResponder课程参考。

答案 1 :(得分:4)

将UIKeyboardType设置为UIKeyboardTypeDecimalPad

适用于iOS 4.1及更高版本。

答案 2 :(得分:1)

创建一个UIViewController,其中包含带有一堆按钮的UIView。现在你的键盘可以随心所欲。