我正在尝试运行一个设置表单并确保用户没有将任何必填字段留空。
一些表单字段是安全的(例如密码)。
遍历所有这些字段并检查它们不为空的最简单方法是什么?
我在下面尝试过 - 但我收到一个奇怪的错误:
if textfield1.stringValue == "",
textfield2.stringValue == "",
passwordfield.stringValue == "" {
//Shows error: Braced block of statements is an unused closure
}
此外,我无法将所有这些 NSTextfields 分组到一个数组中,因为密码文本字段是 NSSecureTextField,尽管它是从 NSTextfield 继承的,但不能与 NSTextfield 分组。
最佳答案
您可以在同一个数组中包含NSTextField
和NSSecureTextField
。这确实是一个很容易找到空的方法。
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
}
但这不是一个好的解决方案,最好使用数组和过滤器。
关于swift - macOS 应用程序中的表单验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41146090/