【问题标题】:iPhone numberpad with decimal point带小数点的 iPhone 数字键盘
【发布时间】:2009-11-09 15:07:17
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    编辑: 正如 ZaBlanc 指出的那样,较新版本的 iOS 可以通过 inputViewinputAccessoryView 属性来做到这一点。有关详细信息,请参阅UIResponder 类参考。

    【讨论】:

    • UITextField 在 3.2+ 中支持 inputView 属性,因此提供您自己的视图要容易得多。 :-) 只是替换键盘所在的位置。 inputAccessoryView 也可以让您轻松添加工具栏。
    【解决方案2】:

    将 UIKeyboardType 设置为 UIKeyboardTypeDecimalPad

    适用于 iOS 4.1 及更高版本。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-21
        • 2014-06-06
        • 1970-01-01
        • 2011-01-06
        • 2010-12-23
        • 1970-01-01
        • 2010-11-13
        • 2011-11-17
        相关资源
        最近更新 更多