Swift中的预期声明

时间:2018-11-01 04:09:59

标签: swift macos

import Cocoa

class ViewController: NSViewController
{
    @IBOutlet weak var y1Val: NSTextField!
    @IBOutlet weak var y2Val: NSTextField!
    @IBOutlet weak var x1Val: NSTextField!
    @IBOutlet weak var x2Val: NSTextField!
    @IBOutlet weak var m: NSTextField!

    var y1 = Double.self; y1Val; //Expected declaration on y1Val
}

我试图在Mac上运行一个小型应用程序,但似乎无法将变量分配给输入文本字段。

P.S。我是GUI的新手,但不是Swift的人。

1 个答案:

答案 0 :(得分:0)

由于您使用的是NSViewControllerNSTextField,因此您似乎正在编写macOS应用。鉴于此,将y1变量同步到文本字段内容的最简单方法是使用Cocoa绑定。为此,请使用@objcdynamic声明变量,如下所示:

@objc dynamic var y1: Double = 0 // Or whatever the initial value should be

然后,在您的xib或情节提要文件中,选择文本字段,转到Bindings Inspector,然后将Value绑定绑定到您的视图控制器(如果是xib,则为“文件所有者”,即“ View Controller” (如果是情节提要),请将Model Key Path设置为y1(将Controller Key保留为默认selection)。现在,无需其他代码,您的文本字段的内容将同步到y1变量;如果文本字段的值更改,则变量也会更改,反之亦然。