Swift で UITextField が空かどうか判定する

iOS のアプリを開発していると、UITextField が空かどうか判定したい時があると思います。

UITextField が空かどうか判定する方法は、いろいろやりようがあると思います。

ここでは Swift で TextField が空っぽかどうか判定する方法のひとつをご紹介します。


TextField が空かどうか判定する

UITextField のアウトレットが textField という名前で定義されているとします。

この textField が空っぽかどうか判断したい時は次のようにできます。

if textField.text?.isEmpty ?? true {
    print("textField は空です。")
} else {
    print("textField は空ではありません。")
}

textField.text の後の ? 演算子は Swift の Optional Chaining です。

? を Optional の定数や変数の後ろにつけてから、プロパティやメソッドを呼び出した時に、値が nil の時は、続くプロパティやメソッドは実行されません。

ここでは textField.text が nil でない時は isEmpty プロパティの値である、空っぽの時は true そうでない時は false が返ります。


?? 演算子は Optional の値につづけて使い、Optional の値が nil の時のデフォルト値を指定することができます。

ですので、textField.text が nil の時は true になります。


意味的には以下のコードと同じです。

if textField.text == nil || textField.text!.isEmpty {
    print("textField は空です。")
} else {
    print("textField は空ではありません。")
}

繰り返し使う時は、以下のように関数を定義して使っても便利かもしれません。

func isTextFieldEmpty(_: UITextField) -> Bool{
    return textField.text?.isEmpty ?? true
}
if isTextFieldEmpty(textField) {
    print("textField は空です。")
} else {
    print("textField は空ではありません。")
}

以上、Swift で TextField が空かどうか判定する方法をご紹介しました。

© 2024 iOS 開発入門