如何更新不活动的窗口?
我有一个带有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
中起作用。
任何帮助将不胜感激!谢谢!