在使用UITextFiled經常會遇到需要收回鍵盤的情形,下面列出了兩種情況并提供了解決方法。
第一種情況:輸入完後通過點選鍵盤上的return、done等按鈕收回鍵盤
解決方法:實作UITextFieldDelegate中的textFieldShouldReturn方法,代碼如下:
#pragma mark - UITextFieldDelegate
// 監聽鍵盤Return事件
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
switch (textField.returnKeyType) {
// 鍵盤為done的Case
case UIReturnKeyDone:
[textField resignFirstResponder];
break;
default:
break;
}
return YES;
}
第二種情況:目前焦點在輸入框,通過點選頁面的空白處收回鍵盤
解決方法:重寫UIResponder中的touchesBegan:withEvent方法,代碼如下:
#pragma mark - 監聽View點選事件
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
UITouch *touch = touches.anyObject;
// 如果點選到UITextField以外的View則收回鍵盤
if (![touch.view isKindOfClass:[UITextField class]]) {
[self.view endEditing:YES];
}
}