在“if”语句不起作用时使用字符串进行比较(SWIFT)

时间:2016-10-30 17:50:52

标签: swift string macos if-statement

所以我正在为Mac开发这个应用程序,我正在使用Swift。我正在学习+并肩开发应用程序。我有主viewController,当你按(+)按钮时,它会打开另一个带有textfield的viewcontroller。现在我有两个按钮,一个说“完成”,另一个说“取消”。如果按取消,viewController将解除。但是,如果按“完成”,则在该文本字段中添加的任何内容都将出现在第一个ViewController中。

我想在“完成”按钮上运行if语句。因此,如果你没有在文本字段中写任何内容并按下完成,它会给你一个错误,如果你写了一些东西,那么它允许你按下Done并且它会解散!

我为文本字段创建了一个IBOutlet:

@IBOutlet var weblinklabel: NSTextField!

然后,存储在weblinklabel中的任何内容都存储在另一个变量中:

weblinklabel.stringValue = done!

显然,“done”是一个可选的字符串变量,分配如下:

var done: String? = "" 

现在在我的理解中,“done”变量如果为空则应该给出错误,在这种情况下,该错误是最初显示自身(最近是isHidden = false' in viewdidload())函数的标签。

这是我尝试使用的“if-statement”:

        if done != nil {
            self.view.window?.close()
        } else {
            label1.isHidden = false
        }

我认为此代码的放置不对。我将它放在“完成”按钮的IBAction下。

在这方面的任何帮助,将不胜感激!感谢

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用类似于我在另一个回复here中解释的方法。

基本上,如果文本字段的内容为“正确”,则会检入controlTextDidChange(notification:),如果不是,则禁用Done按钮。相反,如果文本字段显示有效,则启用它。