Как обновить неактивное окно?
У меня есть приложение с 2 windows. Один из них предназначен для ввода пользователем и по умолчанию является главным окном. Второе - просто отображать значения в 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 не работает, но updateButton
в ViewController2 делает.
Любая помощь будет оценена! Спасибо!