私はtextFieldのばかげた問題に直面しています。私は2つのテキストフィールドtfAとtfBを持っています。私は代理人を設定しました。もしtfAをクリックすれば何かが印刷され、それが印刷され、tfBをクリックするとキーボードが表示されますが、うまく動いていますが、tfAを再度クリックすると、そこに与えられた条件に従って却下してください。しかし、キーボードもここでは却下されません。self.view.endEditing(true)
はここでは働いていません。コードはスクリーンショットで以下に示されていますが、私はここで間違っていますか?UITextFieldのresignFirstResponderは動作していませんself.view.endEditing()
CODE:スウィフト3
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var tfA: UITextField!
@IBOutlet weak var tfB: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
tfA.delegate = self
tfB.delegate = self
}
func textFieldDidBeginEditing(_ textField: UITextField) {
if textField == tfA{
print("TFA Clicked")
textField.resignFirstResponder()
self.view.endEditing(true)
}else{
tfB.becomeFirstResponder()
}
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
スクリーンショット
削除 'textField.resignFirstResponderを()'としてみてください:
textFieldShouldBeginEditing
と交換し、あなたのtextFieldDidBeginEditing
方法を移動します。 tfBから戻ってくると、そのキーボードはアクティブです。したがって、 'self.view.endEditing(true)'は、ビュー内でアクティブなキーボードを閉じるのに十分です。 – ron27tfAを編集可能にしたくない場合は、単純に 'tfA.isEnabled = false'を実行しないでください。 –
@ ron27私は試しましたが、動作しません。 –