2016-12-14 18 views
1

設定フォームを実行しようとしていて、ユーザーが必須フィールドを空にしていないことを確認しています。macOSアプリケーションのフォーム検証の問題

いくつかのフォームフィールドは安全です(パスワードなど)。

これらのフィールドをすべてループして空でないことを確認する最も簡単な方法は何ですか?

私は以下試してみました - しかし、私は奇妙なエラーが出ます:パスワードテキストフィールドは、にもかかわらずがNSTextfield、アールから継承されNSSecureTextFieldあるよう

if textfield1.stringValue == "", 
    textfield2.stringValue == "", 
    passwordfield.stringValue == "" { 
     //Shows error: Braced block of statements is an unused closure 
} 

は、さらに私は、配列の中に、これらすべてのNSTextfieldsグループすることができませんNSTextfieldとグループ化できません。スウィフト2アンダー

答えて

0

あなた同じ配列にNSTextFieldNSSecureTextFieldを持つことができます。これは確かに空のものを見つける簡単な方法です。

let tf = NSTextField() 
let stf = NSSecureTextField() 
let tf2 = NSTextField() 
tf2.stringValue = "some text" 

let all = [tf, stf, tf2] 

let emptyTextFields = all.filter { $0.stringValue.isEmpty } 

あなたの例では、あなたがifでグループ条件にカンマを使用することはできません。また、あなたが&&を使用する必要があります。

if tf.stringValue.isEmpty && stf.stringValue.isEmpty && tf2.stringValue.isEmpty { 
    // do something 
} 

が、これは良い解決策ではない、より良い配列およびフィルタを使用。

0

は、ここでエリック彩が正しく識別何:それはまた一方スウィフト3.

の下でコンパイルする

if textfield1.stringValue == "" && textfield2.stringValue == "" && == "" { 

    } 

、あなたがあなたの質問に入れたコードは、実際スウィフト3で動作します

0

で空の文字列をチェックする別の方法isEmpty変数のStringオブジェクト。

let userName = "" 
let email = "" 

if(userName.isEmpty && email.isEmpty) { 
    print("empty strings") 
} 
else { 
    print("good strings") 
}