首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS UITextField 按 Return 鍵隱藏鍵盤:實現 textFieldShouldReturn 並調用 resignFirstResponder

     編輯:程式設計綜合問答

正確實現

// .h
@interface ViewController : UIViewController 
@property (strong, nonatomic) IBOutlet UITextField *aTextField;
@end

// .m
- (void)viewDidLoad {
    [super viewDidLoad];
    self.aTextField.delegate = self; // 關鍵:設置代理
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder]; // 隱藏鍵盤
    return YES;
}

常見錯誤

  • **未設置 `delegate = self`**,導致代理方法不被調用。
  • 在 `IBAction` 中調用 `resignFirstResponder` 但未連接 `Did End On Exit` 事件。
  • 返回 `NO` 會阻止鍵盤隱藏(某些舊教程錯誤建議)。

Swift 版本

class ViewController: UIViewController, UITextFieldDelegate {
    @IBOutlet weak var textField: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        textField.delegate = self
    }
    
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
}

批量設置

若有多個 UITextField,可在 `viewDidLoad` 循環設置 `delegate = self`,`textFieldShouldReturn` 參數 `textField` 即當前觸發的輸入框,統一處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved