2

我需要使用名称电话键盘类型(UIKeyboardTypeNamePhonePad),但在选择文本字段时首先出现数字键盘。

我需要输入数据,例如

123 - 657 - 450b - 123a

我总是需要先输入一个数字,但偶尔会在最后输入一个 A / B。

4

2 回答 2

2

您可以尝试根据字符串的大小更改键盘类型:

  • 实现委托 UITextFieldDelegate

然后设置默认文本字段键盘;

[textField setKeyboardType:UIKeyboardTypeNumberPad];
[textField setDelegate:self];

然后在下面的方法中,当文本大小等于 3 时改变键盘:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if([[textField text] length] > 3)
    {
        [textField setKeyboardType:UIKeyboardTypeDefault];
        [textField reloadInputViews];
    }
    return YES;
}

另一种解决方案是添加一个附件视图按钮(您可以手动更改键盘):

- (void)viewDidLoad
{
    [super viewDidLoad];

    textField.keyboardType = UIKeyboardTypeNumberPad;
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button setFrame:CGRectMake(0, 0, 50, 50)];
    [button addTarget:self action:@selector(changeKeyboard) forControlEvents:UIControlEventTouchDown];
    textField.inputAccessoryView = button;
}

-(void)changeKeyboard
{
    if([textField keyboardType] == UIKeyboardTypeNumberPad)
    {
        textField.keyboardType = UIKeyboardAppearanceDefault;
    }
    else
    {
        textField.keyboardType = UIKeyboardTypeNumberPad;
    }
    [textField reloadInputViews];
}
于 2013-09-07T09:47:06.763 回答
0

单击文本字段,然后转到隐藏或显示实用程序,即视图(您将在编辑器旁边的右侧找到它。在那里您选择第三个视图,即最右边的视图)。然后单击属性检查器。在该菜单中,您将找到一个名为“键盘”的菜单,该菜单设置为默认值,但您可以选择所需的任何键盘。希望对你有效。

于 2013-09-07T09:40:28.203 回答