前提・実現したいこと
MacOS High Sierra 10.13.3
Xcode 9.4.1, Swift
Swift version 4.1.2
Swift初心者です。
TextFieldに(キーパットではなく)自前のButtonを押して数字を入力し、
TextFieldが何か入力された状態でのみまた別のButtonを有効化させたいです。
ですが、TextFieldにButtonで入力しても何も反応しません。
試しにキーパットで文字を入力するとButtonが有効化されます。
何が問題になっていますでしょうか。
また、TextFieldにButtonでテキストを追加するのとキーパットで追加するのと何が違うのでしょうか。
よろしくお願いします。
該当のソースコード
Swift
1import UIKit 2 3class ViewController: UIViewController, UITextFieldDelegate { 4 5// buttonを登録 6 @IBOutlet weak var button: UIButton! 7 8// textfieldを登録 9 @IBOutlet weak var textField: UITextField! 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 14// 最初はbuttonを無効化 15 self.button.isEnabled = false 16 17 // Do any additional setup after loading the view, typically from a nib. 18 } 19 20 21 // textfieldを Event:Editing Changed で接続 22 @IBAction func textFieldEditingChanged(_ sender: Any) { 23 24 // textfieldが記入なしの状態ならbuttonは無効 25 // textfieldが記入ありの状態ならbuttonは有効 26 if textField.text == "" { 27 button.isEnabled = false 28 } else { 29 button.isEnabled = true 30 } 31 } 32 33// textfieldに"1"を追加 34 @IBAction func add1(_ sender: Any) { 35 textField!.text! += "1" 36 } 37 38 override func didReceiveMemoryWarning() { 39 super.didReceiveMemoryWarning() 40 // Dispose of any resources that can be recreated. 41 } 42} 43
試したこと
add1を2回押してTextFieldに"11"と表示させてもButtonは無効のままで、
キーボードのdeleteで一つ消すと(textは"1")Buttonが有効化になりました。
Buttonからのtext入力ではEditing Changedに反応しないということでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/06 05:24
2018/12/06 05:48