【问题标题】:How to switch keyboard between number+punctuation input view and letter input view with code?如何使用代码在数字+标点输入视图和字母输入视图之间切换键盘?
【发布时间】:2015-02-15 01:58:07
【问题描述】:

是否可以通过代码在 UIKeyboardTypeASCIICapable 的数字输入视图和字母输入视图之间切换?我想默认显示数字输入视图,但也允许用户输入字符。 我需要

【问题讨论】:

  • 在这里问了很多,也回答了很多。例如stackoverflow.com/questions/3790540/…
  • 没有。为了澄清,我想使用键盘类型: UIKeyboardTypeASCIICapable 因为我需要允许用户输入数字和字符。但我想默认向用户显示数字而不是字母。我没有在提供的链接中看到这一点。
  • 啊,我明白了。对不起。我认为答案是你不能,但我很高兴发现我错了。

标签: objective-c uitextfield


【解决方案1】:

没有直接的方法可以模拟在 iPhone 键盘上按下 123 键以在数字/符号和键盘字母之间切换。

不过,您可以在两种不同的键盘类型之间切换。示例:

someTextField.keyboardType = UIKeyboardTypeASCIICapable; // start with one type

那么当你想切换时,你可以这样做:

- (void)toggleKeyboardType:(UITextField *)textfield {
    if (textfield.keyboardType == UIKeyboardTypeNumbersAndPunctuation) {
        textfield.keyboardType = UIKeyboardTypeASCIICapable;
    } else {
        textfield.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
    }
    [textfield reloadInputViews];
}

【讨论】:

  • [textField reloadInputViews] 将在不调用textField:should/will/did end/begin editing 的情况下更新键盘类型和外观以及输入附件视图,而不是辞职然后成为第一响应者,也不会调用通知中心。
  • @Fennelouski 好电话。我忘记了那个方法。
  • 感谢您提供有用的信息。然后我需要在两个 InputView 上添加一个额外的按钮来执行切换操作。
猜你喜欢
  • 1970-01-01
  • 2022-10-01
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
  • 2013-12-06
  • 1970-01-01
  • 1970-01-01
  • 2018-03-19
相关资源
最近更新 更多