Обновление неактивного окна - PullRequest
0 голосов
/ 05 марта 2020

Как обновить неактивное окно?

У меня есть приложение с 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 делает.

Любая помощь будет оценена! Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...