Swift:构建成功,一个空白的应用程序窗口并显示此消息:无法在(NSWindow)上设置(contentViewController)用户定义的检查属性

Ada*_*nko 6 macos xcode swift

我尝试使用类创建一个简单的复数计算器。我的应用程序已成功编译,但是当我运行它时,出现了一个空白窗口,而不是一个包含所有按钮、标签等的窗口,我在输出窗口中收到了以下消息:

2016-03-08 22:20:42.499 复数 [30404:2328250] 无法在 (NSWindow) 上设置 (contentViewController) 用户定义的检查属性:无法从对象 <_NSControllerObjectProxy: 0x6000000022c0c0> of class _NSControllerObjectProxy 创建 BOOL

这是我的 ViewController 类代码。它涉及到一个 complexNumber 类,这里我没有提交:

class ViewController: NSViewController {

    @IBOutlet var Screen: NSView!
    var a = complexNumber();

    @IBOutlet var realValue: NSTextField!

    @IBOutlet var imaginaryValue: NSTextField!

    @IBOutlet var resultLabel: NSTextField!

    @IBAction func lengthResult(sender: AnyObject) {

        let r = NSString(string: realValue.stringValue).doubleValue;
        let i = NSString(string: imaginaryValue.stringValue).doubleValue;

        a = complexNumber(real: r, imaginary: i);
        resultLabel.stringValue = String(a.trigonometric());
    }

    @IBAction func trigonometryResult(sender: AnyObject) {
        let r = NSString(string: realValue.stringValue).doubleValue;
        let i = NSString(string: imaginaryValue.stringValue).doubleValue;

        a = complexNumber(real: r, imaginary: i);
        resultLabel.stringValue = String(a.length());  
    }

    @IBAction func operation(sender: AnyObject) {
        a = complexNumber(real: NSString(string: realValue.stringValue).doubleValue, imaginary: NSString(string: imaginaryValue.stringValue).doubleValue);
        realValue.stringValue = ""
        imaginaryValue.stringValue = "";

        let b = complexNumber(real: NSString(string: realValue.stringValue).doubleValue, imaginary: NSString(string: imaginaryValue.stringValue).doubleValue)

        switch sender.stringValue {
            case "+": a = a.sum(b)
            case "-": a = a.dif(b)
            case "x": a = a.mul(b)
            case ":": a = a.div(b)
            default: a = a.sum(complexNumber())
        }
    }

    @IBAction func displayResult(sender: AnyObject) {
        resultLabel.stringValue = String("\(a.real) + i*\(a.imaginary)");
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    override var representedObject: AnyObject? {
        didSet {
        // Update the view, if already loaded.
        }
    }   
}
Run Code Online (Sandbox Code Playgroud)

我在这里找到了一个类似的线程,但我认为这不是我想要的。

你能帮我吗?

Mik*_*hov 5

另一个原因 - 当您设置错误的绑定时。我的错误示​​例:

Failed to set (contentViewController) user defined inspected property on (NSWindow): [<NSProgressIndicator 0x10111b890> valueForUndefinedKey:]: this class is not key value coding-compliant for the key Enabled.
Run Code Online (Sandbox Code Playgroud)

要解决此问题,您需要删除此处的绑定: 在此输入图像描述


Adr*_*ers 0

我已经创建了一个带有“故事板”的应用程序,即如果有一个故事板文件,其中包含您的视图和窗口,那么缺少以下两件事之一:

1)如果有一个主窗口和一个应该是其主视图的视图,则右键单击 - 从窗口控制器拖动到应该是主视图的视图。当弹出窗口发生时,单击“内容视图”,即如下:

看看我的视频示例

如果失败了,那么我会找出计划二:)

这有什么帮助!

阿德.

  • 方案二在哪里? (4认同)