私はstackoverflowの初心者です、新しいSwift=コードに問題があります。「完了」でキーボードのカスタムリターンボタンを持っていますが、それをタップしても何も降りません...タップでキーボードを非表示にするにはどうすればよいですか?キーボードではなく、どこかをタップするとキーボードを非表示にするコード(このサイトにあります)を追加しましたが、「完了」をタップしてカスタマイズできません「ボタン...前にありがとう!!
完了ボタンを押すと呼び出されるデリゲートメソッドを実装する必要があります。
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
textField.delegate = self
に置き換えることができます
これにより、ビューとそのコンポーネントの間に必要な接続が作成され、textFieldShouldReturnメソッドが期待どおりに機能します。
プロトコルメソッドには新しいシグネチャがあります(Swift 4.1)。 IE:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
プロトコルメソッドはオプションであるため、間違った署名を使用すると暗黙のうちに失敗します。