ユーザーの登録内容の変更画面を作っています。
UITextField(userName, place,site)といった項目を用意し、userName.textがnilの場合のみ変更ボタン(saveButton)がタップできないような関数を作っていますが、
userNameが未入力の場合も変更ボタンがタップ可能になってしまう為、困っています。
userNameはnilを許さず、入力必須の項目としたいです。
下記のコードは
キーボードの"Done"をタップして閉じる パターンと、
変更ボタン(saveButton)をダイレクトにタップして閉じる パターンの関数の部分です。
どこかnilでも変更ボタンをタップ可能になっている箇所がありますか? どうぞよろしくお願いします。
//"Done"をタップ キーボード閉じる パターン func textFieldShouldReturn(_ textField: UITextField) -> Bool { //"Done"でtextFieldが閉じる(userName, place, siteなど全て) textField.resignFirstResponder() //TextFieldに入力された値に反応して、その値を習得。 NotificationCenter.default.addObserver(self, selector: #selector(ModalViewController.changeNotifyTextField(sender:)), name: NSNotification.Name.UITextFieldTextDidChange, object: nil) return true } //senderの中に 変更があったUITextFieldが入ってくる感じ @objc public func changeNotifyTextField (sender: NSNotification) { guard let textView = sender.object as? UITextField else { return } if userName.text != nil { saveButton.isEnabled = userName.text != "" //ターゲット saveButton.addTarget(self, action: #selector(save(_:)), for: .touchUpInside) } } @objc func save(_ sender: UITapGestureRecognizer) { print("変更ボタン タップ") self.dismiss(animated: true, completion: nil) aaa() }
//saveButtonをダイレクトにタップする パターン @objc func save2(_ sender: UITapGestureRecognizer) { NotificationCenter.default.addObserver(self, selector: #selector(ModalViewController.changeNotifyTextField2(sender:)), name: NSNotification.Name.UITextFieldTextDidChange, object: nil) } //senderの中に 変更があったUITextFieldが入ってくる感じ @objc public func changeNotifyTextField2 (sender: NSNotification) { guard let textView = sender.object as? UITextField else { return } if userName.text != nil { saveButton.isEnabled = userName.text != nil //ターゲット saveButton.addTarget(self, action: #selector(save3(_:)), for: .touchUpInside) } } @objc func save3(_ sender: UITapGestureRecognizer) { saveButton.endEditing(true) print("タップ") self.dismiss(animated: true, completion: nil) }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/30 06:53 編集
2018/05/30 07:03
退会済みユーザー
2018/05/30 07:52
2018/05/30 08:10
退会済みユーザー
2018/05/30 08:22