質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

947閲覧

Xcode TextFieldに文字が入力されるまでボタン機能は無効にしたい

hiyoko_piyo

総合スコア2

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/04/14 06:19

編集2021/04/14 06:29

TextFieldに文字が入力されるまでボタン機能は無効にしたい

Swift初学者です。用語等、何か間違って使用しているかもしれませんが、ご容赦いただけると幸いです。
現在、Swiftでのアプリ作成を練習しており、ログインページを作成中です。 
そのログインページで、メールアドレスとパスワードを入力するまで、ログインボタンをタップできないようにしたいです。
そこで、以下のサイトを参考にコードを書いてみたのですが、テキストを入力後もログインボタンが有効化されません。
TextFieldに値が入っていないときにボタンを非活性(無効)にする方法
teratailでも類似の質問を確認したのですが、原因がわからず困っています。

ご教示いただきたいこと

①テキスト入力後もログインボタンが有効にならない理由
②テキスト入力後にボタンを有効化する方法
※メールアドレス・パスワードが合致しているかの判断は考慮しなくて問題ありません。

開発環境:Xcode11

import UIKit class LoginViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var inputMail: UITextField! @IBOutlet weak var inputPassWord: UITextField! @IBOutlet weak var loginButton: UIButton! override func viewDidLoad() { super.viewDidLoad() //最初にボタンを無効にする loginButton.isEnabled = false } // キーボードを閉じるコード(省略しています) //以下のtapMoveListPageは「Editing Change」で接続しています。 @IBAction func tapMoveListPage(_ sender: Any) { if inputMail.text == "" || inputPassWord.text == "" { loginButton.isEnabled = false } else { loginButton.isEnabled = true } //画面遷移のコード(省略しています) } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/04/14 10:28

@IBAction が一つしか見当たりませんが、テキストを入力した時とボタンを押した時の二つ必要では?
tsuki01

2021/04/14 12:54

検証してみましたが、「tapMoveListPage」が正常にStoryboardと接続されていたらボタンは有効化されました。 どちらかのUITextFieldが、「tapMoveListPage」に接続されていないってことはないでしょうか? 接続状態が分かるキャプチャもあると、正確な回答が付きやすくなるかもしれません。
tomato879241

2021/04/15 08:56

「UIControl.Event」の「UIControl.Event.editingChanged」を使って、ただ入力されている文字の数を数えればいいのでは?
hiyoko_piyo

2021/04/18 11:31

返答が遅くなり大変失礼いたしました。 みなさまご回答ありがとうございました。 原因はtsuki01様のおっしゃる通り、Storyboardとの接続が正しくできていないことでした。
guest

回答1

0

自己解決

Storyboardとの接続が正しくできていないことでした。

投稿2021/04/18 11:32

hiyoko_piyo

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問