当一个UITextField需要输入的是数字时,我们可能会把这个UITextField的键盘设置成数字键盘,但是数字键盘没有done按钮,怎么收起键盘,当然也可以通过点击空白处收起键盘:
//取消第一响应者
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
但是有时候我们需要给这个数字键盘在弹起时,键盘上面添加一个收起键盘的按钮,比如说:完成,当然也可以添加上一项、下一项的按钮:点击完成时,只是负责键盘的收起:
- (UIToolbar *)addToolbar
{
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 35)];
toolbar.tintColor = [UIColor blueColor];
toolbar.backgroundColor = [UIColor sy_grayColor];
UIBarButtonItem *nextButton = [[UIBarButtonItem alloc] initWithTitle:@"下一步" style:UIBarButtonItemStylePlain target:self action:@selector(nextTextField)];
UIBarButtonItem *prevButton = [[UIBarButtonItem alloc] initWithTitle:@"上一步" style:UIBarButtonItemStylePlain target:self action:@selector(prevTextField)];
UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *bar = [[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStylePlain target:self action:@selector(textFieldDone)];
toolbar.items = @[nextButton, prevButton, space, bar];
return toolbar;
}
上面这段代码里面,有两个方法需要实现以下,分别对应的是上一项、下一项,根据自己的需要,去实现里面的代码,这里就不过多的叙述了!
说了这么多,到底囧么来用呢,其实很简单,在你的代码里面,定义了一个UITextField,比如说是:userField,用法如下:
//去调用上面的代码,给这个UITextField的对象添加UIToolbar
_userField.inputAccessoryView = [self addToolbar];
效果如下图:
图片1.png