我可以在 iPad 上使用哪个 UIKeyboardType

Posted

技术标签:

【中文标题】我可以在 iPad 上使用哪个 UIKeyboardType【英文标题】:Which UIKeyboardType can I use on the iPad 【发布时间】:2012-07-25 16:12:38 【问题描述】:

我的 iPad 应用中有一个 textField 对象。我想给用户一个方便的键盘来输入数字。在我的代码中我添加了:

UITextField *textField = [[UITextField alloc] initWithFrame:frame];
textField.keyboardType = UIKeyboardTypeDecimalPad;

根据文档,这是一种有效的键盘类型,但是当我编辑文本字段时,会出现普通的 ASCII 键盘。但是,当我将其更改为:

textField.keyboardType = UIKeyboardTypePhonePad;

键盘如下所示:

理想情况下,我想要一个只有数字和小数点的键盘,但这在 iPad 上是不可能的吗?有没有人明确列出哪些键盘适用于 iPhone 和 iPad?苹果在这一点上还不清楚。我也看到了这个question,它很相似,但没有一个答案能真正解决我的观点。

【问题讨论】:

【参考方案1】:

这些是可以在两个 ios 设备上使用的 UIKeyboardType。来自the docs:

UIKeyboardTypeDefault

使用当前输入法的默认键盘。 适用于 iOS 2.0 及更高版本。 在UITextInputTraits.h 中声明。

UIKeyboardTypeASCIICapable

使用显示标准 ASCII 字符的键盘。 适用于 iOS 2.0 及更高版本。 在UITextInputTraits.h中声明。

UIKeyboardTypeNumbersAndPunctuation

使用数字和标点键盘。 适用于 iOS 2.0 及更高版本。 在UITextInputTraits.h 中声明。

UIKeyboardTypeURL

使用针对 URL 输入优化的键盘。此类型突出显示“.”、“/”和“.com”。 适用于 iOS 2.0 及更高版本。 在UITextInputTraits.h 中声明。

UIKeyboardTypeNumberPad

使用专为输入 PIN 设计的数字键盘。这种类型突出显示数字 0 到 9。这种键盘类型不 支持自动大写。 适用于 iOS 2.0 及更高版本。 在UITextInputTraits.h 中声明。

UIKeyboardTypePhonePad

使用专为输入电话号码而设计的键盘。此类型具有数字 0 到 9 以及“*”和“#”字符 显着。此键盘类型不支持自动大写。 适用于 iOS 2.0 及更高版本。 在UITextInputTraits.h 中声明。

UIKeyboardTypeNamePhonePad

使用专为输入个人姓名或电话号码而设计的键盘。此键盘类型不支持自动大写。 适用于 iOS 2.0 及更高版本。 在UITextInputTraits.h 中声明。

UIKeyboardTypeEmailAddress

使用为指定电子邮件地址而优化的键盘。这种类型的特点是“@”、“.”和突出的空格字符。 适用于 iOS 2.0 及更高版本。 在UITextInputTraits.h中声明。

UIKeyboardTypeDecimalPad

使用带有数字和小数点的键盘。 适用于 iOS 4.1 及更高版本。 在UITextInputTraits.h 中声明。

UIKeyboardTypeTwitter

使用针对 twitter 文本输入优化的键盘,可以轻松访问 @ 和 # 字符。 适用于 iOS 5.0 及更高版本。 在UITextInputTraits.h中声明。

UIKeyboardTypeAlphabet

已弃用。 改用 UIKeyboardTypeASCIICapable。 适用于 iOS 2.0 及更高版本。 在UITextInputTraits.h 中声明。

这里有一些screenshots of the different types of keyboards。

【讨论】:

嗯,UIKeyboardTypeDecimalPad 绝对不能在 iPad 上工作,而其他一些键盘则产生相同的键盘。即 UIKeyboardTypePhonePadUIKeyboardTypeNumberPad 据我所知是相同的。我有兴趣查看 iPad 上实际可用的键盘的完整列表。 @SamanthaJohn:可用列表添加在答案的顶部。我在 ipad 模拟器上尝试了这个 UIKeyboardTypeDecimalPad,它对我有用。 哦,你是对的,它现在对我有用。我认为最终我将不得不滚动自己的键盘,因为苹果似乎没有为 iPad 提供许多默认选项。 (只需数字或字母,您可以随时切换)。 奇怪,UIKeyboardTypeDecimalPad 在我尝试过的任何设备/模拟器上都不起作用。 Xcode 好心地说:Can't find keyplane that support type 8 for keyboard Wildcat-Landscape-QWERTY-Pad;使用 2592645918_Wildcat-Alphabetic-Keyboard_Capital-Letters 我可以说 iPad (iOS 10.3) 上没有很多可用的键盘类型,如果它们可用,它们只是一个不同的起始视图,你可以换回,它不会限制输入。我一直在寻找一种将输入限制为数字的方法,除了那些键盘在 iPad 上不可用,但在 iPhone 上效果很好。【参考方案2】:

收到警告后,我使用模拟器测试了 iPad/iPhone 可用的键盘类型

"找不到支持键盘类型 8 的键盘 Wildcat-Landscape-QWERTY-Pad;使用 2592645918_Wildcat-Alphabetic-Keyboard_Capital-Letters"

在 iPad 上为UIKeyboardTypeDecimalPad。希望这对下一个在这里绊倒的人有用。

iPad:

UIKeyboardTypeASCIICapable UIKeyboardTypeNumbersAndPunctuation UIKeyboardTypeURL UIKeyboardTypeNumberPad UIKeyboardTypeNamePhonePad UIKeyboardTypeEmailAddress UIKeyboardTypeTwitter

所以,除了UIKeyboardTypeDecimalPad 之外的所有其他人。在 iOS 5.1 或 6.1 中,使用 UIKeyboardTypeDecimalPad 只会给你一记耳光。

iPhone:

UIKeyboardTypeASCIICapable UIKeyboardTypeNumbersAndPunctuation UIKeyboardTypeURL UIKeyboardTypeNumberPad UIKeyboardTypeNamePhonePad UIKeyboardTypeEmailAddress UIKeyboardTypeDecimalPad UIKeyboardTypeTwitter

即全部

【讨论】:

以上是关于我可以在 iPad 上使用哪个 UIKeyboardType的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPad 上运行 iPod 应用程序

当iPad和Surface基本同价的时候,你会选择哪个呢?

在 iPad 2012 Chrome v59 上使用 Reactjs 前端

在ipad上测试时,Xcode退出我的应用程序说“完成运行应用程序”

ipad上的微软雅黑是哪个

我可以在别人的 iPad 上测试我的 iPad 应用程序吗?