如何测试 UIKeyboardTypeDecimalPad 是否可用?
根据 UITextInputTraits 协议参考,UIKeyboardTypeDecimalPad 是“在 iOS 4.1 及更高版本中可用”。
我目前正在使用 如何检查 iOS 版本? 中找到的系统版本控制预处理器宏来检查是否我的应用程序在 iOS 4.1 及更高版本中运行,但我想知道...
是否有更好的方法来测试此键盘的可用性?我无法测试选择器“setKeyboardType”的可用性,因为它始终返回 YES。我需要测试 UIKeyboardType 枚举之一是否可供使用。
有什么想法吗?
According to the UITextInputTraits Protocol Reference, the UIKeyboardTypeDecimalPad is "Available in iOS 4.1 and later."
I am currently using the System Versioning Preprocessor Macros found in How to check iOS version? to check if my app is running in iOS 4.1 and later, but I wonder...
Is there a better way to test for this keypad's availability? I can't test for availability of the selector "setKeyboardType", since that will always return YES. I need to test if one of the UIKeyboardType enums is available for use.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
试试这个:
这是检查设备上运行的 iOS 版本,看看它是否足够“新”。也就是说,在iOS4.1中就已经有了带小数点按钮的键盘。因此,该版本或之后的任何 iOS 版本都有它。
该技术(粗略地)是“基于版本的能力测试”。还有其他类似的功能测试技术,例如检查类是否响应特定选择器,这些技术在其他情况下效果很好。
通常,检查要使用的特定选择器的可用性比检查版本号更好。但对于常量之类的情况,检查底层操作系统的版本(在我看来)同样好。
Try this:
This is checking the iOS version running on the device to see if it is "new" enough. That is to say, the keypad with a decimal button was available in iOS4.1. So, any iOS version at or after that version has it.
The technique is (loosly) "capability testing based on version". There are other similar techniques of capability testing, such as checking if a class responds to a particular selector, that work well in other situations.
Generally, checking for the availability of a specific selector you want to use is better than checking version numbers. But in the case of something like a constant, checking the version of the underlying OS (in my opinion) is equally good.