web-dev-qa-db-ja.com

キーボード完了キーアクションSwift iOSは動作しません

私はstackoverflowの初心者です、新しいSwift=コードに問題があります。「完了」でキーボードのカスタムリターンボタンを持っていますが、それをタップしても何も降りません...タップでキーボードを非表示にするにはどうすればよいですか?キーボードではなく、どこかをタップするとキーボードを非表示にするコード(このサイトにあります)を追加しましたが、「完了」をタップしてカスタマイズできません「ボタン...前にありがとう!!

26
Giorgio Nocera

完了ボタンを押すと呼び出されるデリゲートメソッドを実装する必要があります。

func textFieldShouldReturn(textField: UITextField!) -> Bool {  
    textField.resignFirstResponder()
    return true
}

また、UITextFieldDelegateプロトコルに準拠する必要があります。

class MyViewController: UIViewController,UITextFieldDelegate // I assume you override UIview controller class if not add UITextFieldDelegate to your class

最後に、クラスをテキストフィールドデリゲートとして設定します。

textField.delegate = self
78
Greg
textField.delegate = self

に置き換えることができます enter image description here

これにより、ビューとそのコンポーネントの間に必要な接続が作成され、textFieldShouldReturnメソッドが期待どおりに機能します。

11
Stephane Paquet

プロトコルメソッドには新しいシグネチャがあります(Swift 4.1)。 IE:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true
}

プロトコルメソッドはオプションであるため、間違った署名を使用すると暗黙のうちに失敗します。

0
MatthiasFranz