如何禁用或隐藏数字键盘类型中的定位功能?

7

在我的iOS应用程序中,当用户点击一个 UITextfield 时,我需要自动将键盘视图更改为数字视图。我编写了以下代码,并且它可以正常工作。

UITextField *txtfield  = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 100, 30)];
txtfield.keyboardType = UIKeyboardTypeNumberPad;

我的应用支持本地化。我在设备上添加了4个键盘,如英语、西班牙语、印地语和表情符号。我想在数字键盘类型中禁用或隐藏本地化。请参见附图,在红框中有标出。

图片描述在这里输入

有人知道怎么做吗?

2个回答

11

(适用于 iOS 10 或更高版本)

Swift

在 Xcode 8.3/Swift 3.1 中,使用 .asciiCapableNumberPad 仅限于数字。

txtField.keyboardType = .asciiCapableNumberPad

Objective-C

txtField.keyboardType = UIKeyboardTypeASCIICapableNumberPad

4
不能输入十进制数。 - Samarth Kejriwal
这就是 OP 所问的。 - Jack

3

@Jack的答案是正确的,但如果你需要支持iOS9及以下版本的iDevices,你需要像这样进行检查:

if (IS_OS_10_OR_LATER) {
  txtfield.keyboardType = UIKeyboardTypeASCIICapableNumberPad;
}
else {
  txtfield.keyboardType = UIKeyboardTypeNumberPad;
}

如果不这样做,如果用户的iDevice仍在iOS9及以下版本,则会看到默认键盘类型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接