我在一个视图中有十个文本字段。在那我需要 2 个文本字段用于电话和邮政编码。所以我想在点击电话和压缩文本字段时显示一个数字键盘。
我使用以下链接创建了一个自定义完成按钮。如果我只有一个文本字段,此代码很有用,它会因多个文本字段而失败。有人解决了这个问题吗?
这是适合您的解决方案(如果屏幕上还有其他非数字键盘文本字段,则完美。)
- (void)viewDidLoad
{
[super viewDidLoad];
UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
numberToolbar.barStyle = UIBarStyleBlackTranslucent;
numberToolbar.items = [NSArray arrayWithObjects:
[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad)],
[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc]initWithTitle:@"Apply" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)],
nil];
[numberToolbar sizeToFit];
numberTextField.inputAccessoryView = numberToolbar;
}
-(void)cancelNumberPad{
[numberTextField resignFirstResponder];
numberTextField.text = @"";
}
-(void)doneWithNumberPad{
NSString *numberFromTheKeyboard = numberTextField.text;
[numberTextField resignFirstResponder];
}
在 Interface Builder 中,只需单击每个文本字段,然后在属性窗格中查看 Text Traits 下。在键盘下,您可以将其自定义为单击文本字段时需要显示的任何类型的键盘。