根据UITextInputTraits Protocol Reference,UIKeyboardTypeDecimalPad“在iOS 4.1及更高版本中可用。”
我目前正在使用How to check iOS version?中的系统版本预处理器宏来检查我的应用是否在iOS 4.1及更高版本中运行,但我不知道......
有没有更好的方法来测试这个键盘的可用性?我无法测试选择器“setKeyboardType”的可用性,因为它总是返回YES。我需要测试其中一个UIKeyboardType枚举是否可用。
有什么想法吗?
答案 0 :(得分:4)
试试这个:
yourTextField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
if (([[[UIDevice currentDevice] systemVersion] doubleValue] >= 4.1)) {
yourTextField.keyboardType = UIKeyboardTypeDecimalPad;
}
这是检查设备上运行的iOS版本,看它是否足够“新”。也就是说,带有小数点按钮的键盘在iOS4.1中可用。因此,该版本之后或之后的任何iOS版本都有它。
该技术(松散地)“基于版本的能力测试”。还有其他类似的功能测试技术,例如检查类是否响应特定选择器,在其他情况下也能正常工作。
通常,检查要使用的特定选择器的可用性比检查版本号更好。但是在类似常量的情况下,检查底层操作系统的版本(在我看来)同样好。