如何测试 UIKeyboardTypeDecimalPad 是否可用?

发布于 2024-12-22 02:07:50 字数 534 浏览 1 评论 0原文

根据 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

趴在窗边数星星i 2024-12-29 02:07:50

试试这个:

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

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

该技术(粗略地)是“基于版本的能力测试”。还有其他类似的功能测试技术,例如检查类是否响应特定选择器,这些技术在其他情况下效果很好。

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

Try this:

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文