ビューにボタンとテキストテキストフィールドがあります。テキストフィールドをクリックするとキーボードが表示され、テキストフィールドに書き込むことができ、ボタンを追加してキーボードを閉じることもできます:
[self.inputText resignFirstResponder];
次に、キーボードのリターンキーを有効にします。キーボードを押すとキーボードが消え、何かが起こります。これどうやってするの?
「self」がUITextFieldDelegate
をサブスクライブし、inputTextを初期化することを確認します。
self.inputText.delegate = self;
次のメソッドを「self」に追加します。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if (textField == self.inputText) {
[textField resignFirstResponder];
return NO;
}
return YES;
}
またはSwiftで:
func textFieldShouldReturn(textField: UITextField) -> Bool {
if textField == inputText {
textField.resignFirstResponder()
return false
}
return true
}
Swift 3.0の拡張スタイルを使用
最初に、テキストフィールドのデリゲートを設定します。
override func viewDidLoad() {
super.viewDidLoad()
self.inputText.delegate = self
}
次に、View Controllerの拡張機能のUITextFieldDelegate
に準拠します
extension YourViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField == inputText {
textField.resignFirstResponder()
return false
}
return true
}
}
他の答えは正しく機能しますが、次のことを行うことを好みます。
ViewDidLoad()で、追加します
self.textField.addTarget(self, action: #selector(onReturn), for: UIControl.Event.editingDidEndOnExit)
関数を定義します
@IBAction func onReturn() {
self.textField.resignFirstResponder()
// do whatever you want...
}