我可以在 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:
使用当前输入法的默认键盘。 适用于 iOS 2.0 及更高版本。 在
UIKeyboardTypeDefault
UITextInputTraits.h
中声明。使用显示标准 ASCII 字符的键盘。 适用于 iOS 2.0 及更高版本。 在
UIKeyboardTypeASCIICapable
UITextInputTraits.h
中声明。使用数字和标点键盘。 适用于 iOS 2.0 及更高版本。 在
UIKeyboardTypeNumbersAndPunctuation
UITextInputTraits.h
中声明。使用针对 URL 输入优化的键盘。此类型突出显示“.”、“/”和“.com”。 适用于 iOS 2.0 及更高版本。 在
UIKeyboardTypeURL
UITextInputTraits.h
中声明。使用专为输入 PIN 设计的数字键盘。这种类型突出显示数字 0 到 9。这种键盘类型不 支持自动大写。 适用于 iOS 2.0 及更高版本。 在
UIKeyboardTypeNumberPad
UITextInputTraits.h
中声明。使用专为输入电话号码而设计的键盘。此类型具有数字 0 到 9 以及“*”和“#”字符 显着。此键盘类型不支持自动大写。 适用于 iOS 2.0 及更高版本。 在
UIKeyboardTypePhonePad
UITextInputTraits.h
中声明。使用专为输入个人姓名或电话号码而设计的键盘。此键盘类型不支持自动大写。 适用于 iOS 2.0 及更高版本。 在
UIKeyboardTypeNamePhonePad
UITextInputTraits.h
中声明。使用为指定电子邮件地址而优化的键盘。这种类型的特点是“@”、“.”和突出的空格字符。 适用于 iOS 2.0 及更高版本。 在
UIKeyboardTypeEmailAddress
UITextInputTraits.h
中声明。使用带有数字和小数点的键盘。 适用于 iOS 4.1 及更高版本。 在
UIKeyboardTypeDecimalPad
UITextInputTraits.h
中声明。使用针对 twitter 文本输入优化的键盘,可以轻松访问 @ 和 # 字符。 适用于 iOS 5.0 及更高版本。 在
UIKeyboardTypeTwitter
UITextInputTraits.h
中声明。已弃用。 改用 UIKeyboardTypeASCIICapable。 适用于 iOS 2.0 及更高版本。 在
UIKeyboardTypeAlphabet
UITextInputTraits.h
中声明。
这里有一些screenshots of the different types of keyboards。
【讨论】:
嗯,UIKeyboardTypeDecimalPad 绝对不能在 iPad 上工作,而其他一些键盘则产生相同的键盘。即 UIKeyboardTypePhonePad 和 UIKeyboardTypeNumberPad 据我所知是相同的。我有兴趣查看 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 2012 Chrome v59 上使用 Reactjs 前端