textfield
スポンサーリンク

ググっても(初学者にわかりやすい記事が)なかなか出てこなかったので自分で記事にしときます。

メールアドレスとパスワードを入力しないと「登録ボタン」が押せない(アドレスとパスワードが入力されていればボタンが押せる)ようにしたい場合のやり方を紹介します。

見本

よくあるこういうやつ↑です。今回想定するのは超シンプル(簡素)なものです。

 

結論:バリデーションを使うと良い

バリデーション(検証)を使いましょう。

バリデーションとは、Swiftの特別な機能という訳ではなく、「何かの処理に制限を設けるといった概念」のようなものと捉えてください。

 

今回の例では、「2つのTextFieldの中身が空あるいはnilか」を検証しています。

コードの全体像

ストーリーボード

2つのTextFieldをつなぐ

画像のように部品を配置したら、2つのTextFieldをCtrlドラックでviewController.Swiftにつなぎます。

このとき、ダイヤログ画面では次の画像の通りにしてください。(パスワードの方も同様)

ダイアログ

 

バリデーションの使い方(作り方・書き方)

バリデーションは「func validate()」のように自分でメソッドを作って実装します。

validateメソッド部分

 

guard let文でアンラップ

右辺の変数mailTextとpasswordTextに値が入っている場合は、その値が左辺の変数mailTxtとpassTxtに値が入ります。

変数mailTxtとpassTxtに値が入らなかった(変数mailTextとpasswordTextに値が入っていなかった)場合はelse{}内が実行され、ボタンが押せなく(非活性)なります。

 

文字数の有無でボタンを非活性にする

変数mailTxtとpassTxtに値が入ったら、処理がif文まで降りてきます。

mailTxt.countまたはpassTxt.countが「0」だった場合は、「.isEnabled = false」でボタンが押せなくなります。

そうでない(mailTxt.countとpassTxt.countがともに値を持っている)場合のみ、「.isEnabled = true」でボタンが押せるようになります。

 

validate()を@IBAction内で呼ぶ

今作ったvalidate()メソッドを、@IBAction内で呼び出します。

@IBAction部分

「sender」は「IBActionに紐付けされたTextField」のことです。

ユーザーが入力した文字列(sender.text)を変数mailTextとpasswordTextに代入しています。

 

初期状態もボタンを押せなくする

UIButtonが選択された状態でinspectorを開けて、「State」の「Enable」のチェックを外してください。そうすると画面が開いた瞬間からボタンが押せなくなっています。

inspector

 

参考に作ってみてください

新規プロジェクト作って真似してみると分かりやすいかもしれません!お試しあれ!

Swift(iOS)が学べるオンラインスクール ランキング
CodeCamp
CodeCamp
7〜24時まで授業可能で働きながらでも学べる!!
料金
講師の質
コースの種類
転職サポート
ポイント1エンジニア経験2年以上のベテラン講師によるオンライン授業
講師は全員が現役のエンジニアで、他のスクールによく見られるアルバイト講師ではありません。マンツーマン指導で自分のレベルにあったカリキュラムが組め、満足度も高いです。また、自社開発企業への転職指導にも定評があります。

ポイント2無料レッスン体験&無料受講相談で事前に話が聞ける
事前にレッスンを体験して授業の雰囲気や学習ペースを確認できます。またエンジニア転職を目指す方にはどのコースが向いているかなどが聞けるカウンセリング(受講相談)も無料。エンジニアの生の声が聞けるので自分が働き出した時のことをイメージできます。

TechAcademy

授業型ではなく自習型なので自分のペースで学べる
料金
講師の質
コースの種類
転職サポート
ポイント1自習スタイルでチャット質問は何回でも無料
自分の分からないところを質問するスタイルなのでわかるところはサクッと、わからないところはじっくりと、無駄なく学べます。チャットの質問が無料なので、料金を気にせず何回でも聞けます。また、メンターがつくのでカウンセリングで学習の進捗やモチベーションの管理もしてくれます。
ポイント21週間の無料体験と無料カウンセリング、安心の返金制度も
無料体験の期間は1週間もあり、納得してから契約できるので安心です。事前の無料カウンセリングでは、その人にあったアドバイス等をもらうことができるので気軽に活用しよう。転職保障コースの場合、転職できなかったら全額返金!!
侍エンジニア塾
プログラミングスクールの老舗NO.1
料金
講師の質
コースの種類
転職サポート
ポイント1歴史があるからノウハウも豊富
日本で初めてオンラインのマンツーマンレッスン指導を導入した実績十分のスクール。講師も現役エンジニアでメンタリングもあるため転職のサポートも手厚く、面接対策や自己PRのフィードバックまで対応してくれます。

ポイント2転職成功率94.1%、挫折率8%
コースによっては転職成功で受講料が0円に!!  絶対にエンジニアになりたいという意思があれば超低額で転職できます。事前の無料体験で相談も可能なため、まずは話だけ聞いてみるのもあり。

おすすめの記事