更新非活动窗口

时间:2020-03-05 13:16:14

标签: swift macos

如何更新不活动的窗口?

我有一个带有2个窗口的应用程序。一个用于用户输入,默认情况下是主窗口。第二个只是在NSTextFields中显示值,通常是不活动的。我在第二个窗口中更新元素时​​遇到问题。

以下是重现该问题的最少代码(Swift 3):

import Cocoa

class ViewController: NSViewController {

    @IBOutlet var logArea: NSScrollView!
    @IBOutlet var logText: NSTextView!

    var windowController: NSWindowController
    var vc: ViewController2

    @IBAction func runButton(_ sender: Any) {
        displayText(text: "Running")
        vc.updateInput(value: 1.0005)
    }

    required init?(coder decoder: NSCoder) {
        let storyboard = NSStoryboard(name: "Main",bundle: nil)
        windowController = storyboard.instantiateController(withIdentifier: "WindowID") as! NSWindowController
        windowController.window?.makeKeyAndOrderFront(nil)
        vc = storyboard.instantiateController(withIdentifier: "ViewID") as! ViewController2
        vc.loadView()
        super.init(coder: decoder)
    }

    func displayText(text: String) {
        logText.textStorage?.append(NSAttributedString(string: text + "\n"))
    }

}

class ViewController2: NSViewController {

    @IBOutlet var input0: NSTextField!

    @IBAction func updateButton(_ sender: Any) {
        updateInput(value: 1.0)
    }

    func updateInput(value: Double) {
        if input0.doubleValue == 1.0 { input0.doubleValue = 0.0 }
        else { input0.doubleValue = value }
    }

}

vc.updateInput(value: 1.0005)在ViewController中不起作用,但在ViewController2中updateButton中起作用。

任何帮助将不胜感激!谢谢!

0 个答案:

没有答案
相关问题