【问题标题】:Which UIKeyboardType can I use on the iPad我可以在 iPad 上使用哪个 UIKeyboardType
【发布时间】: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,它很相似,但没有一个答案能真正解决我的观点。

【问题讨论】:

    标签: ios objective-c ipad uikeyboardtype


    【解决方案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

    即全部

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-03
      • 2011-11-10
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 2013-07-15
      • 2015-01-12
      • 2011-01-17
      相关资源
      最近更新 更多