天天看點

使用UITextFiled收回鍵盤的幾種方法

在使用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];
    }
}