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 が空かどうか判定する方法をご紹介しました。