如何测试UIKeyboardTypeDecimalPad是否可用?

时间:2011-12-19 16:54:46

标签: ios uitextfield version uikeyboard

根据UITextInputTraits Protocol Reference,UIKeyboardTypeDecimalPad“在iOS 4.1及更高版本中可用。”

我目前正在使用How to check iOS version?中的系统版本预处理器宏来检查我的应用是否在iOS 4.1及更高版本中运行,但我不知道......

有没有更好的方法来测试这个键盘的可用性?我无法测试选择器“setKeyboardType”的可用性,因为它总是返回YES。我需要测试其中一个UIKeyboardType枚举是否可用。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

试试这个:

    yourTextField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
    if (([[[UIDevice currentDevice] systemVersion] doubleValue] >= 4.1)) {
        yourTextField.keyboardType = UIKeyboardTypeDecimalPad;
    }

这是检查设备上运行的iOS版本,看它是否足够“新”。也就是说,带有小数点按钮的键盘在iOS4.1中可用。因此,该版本之后或之后的任何iOS版本都有它。

该技术(松散地)“基于版本的能力测试”。还有其他类似的功能测试技术,例如检查类是否响应特定选择器,在其他情况下也能正常工作。

通常,检查要使用的特定选择器的可用性比检查版本号更好。但是在类似常量的情况下,检查底层操作系统的版本(在我看来)同样好。