在做界面的时候我们往往会涉及到键盘的处理,比如说有3个输入框:
我们想要输入完姓名后点击键盘的右下角可以让光标直接跳到邮箱的输入框里,当输入完邮箱后再点击键盘的右下角光标跳到地址的输入框里,由于是最后一个输入框再点击一下键盘应该退出去,这才符合用户体验的要求。
首先,我们应该要知道键盘右下角的按键叫做Return Key,默认是换行,我们可以在storyboard中修改它:
将textfield的代理设置为控制器,当用户点击该按钮时会调用textFieldShouldReturn:这个代理方法,我们只要在这个方法中对textfield进行处理就行:
#pragma mark - <UITextFieldDelegate>
/**
* 当点击键盘右下角的return key时,就会调用这个方法
*/
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
if (textField == self.nameField) {
// 让emailField成为第一响应者
[self.emailField becomeFirstResponder];
} else if (textField == self.emailField) {
// 让addressField成为第一响应者
[self.addressField becomeFirstResponder];
} else if (textField == self.addressField) {
[self.view endEditing:YES];
// [textField resignFirstResponder];
}
return YES;
}
在加上点击空白处退出键盘:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.view endEditing:YES];
}
如果想要更换输入框的键盘:
// 更换键盘
UIView *keyboard = [[UIView alloc] init];
keyboard.frame = CGRectMake(0, 0, 0, 100);
keyboard.backgroundColor = [UIColor redColor];
self.textField.inputView = keyboard;
在键盘顶部添加工具条:(一般使用toolBar)
// 设置键盘顶部的工具条;
UIView *toolbar = [[UIView alloc] init];
toolbar.frame = CGRectMake(0, 0, 0, 44);
toolbar.backgroundColor = [UIColor blueColor];
self.textField.inputAccessoryView = toolbar;