Обновленное значение NSTextField.stringValue не отображается в представлении TodayViewController - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь написать свою первую утилиту на Swift.Я пытаюсь написать виджет MacOS Notification Center, который будет отображать состояния сервера Minecraft.

Я успешно могу запросить URL-адрес, чтобы получить статус в JSON, а затем проанализировать его в NSDictionary. * 1004.*

Я также прочитал, что я могу сделать textField.stringValue = "New String", но по какой-то причине он не отображается в моем виджете.

Я читал много сообщений в блоге и другие сообщения StackOverflow по теме и могуне вижу ничего, что я делаю неправильно.Имея в виду, это моя первая попытка, поэтому я не знаю, чего не знаю!

Здесь я пытаюсь обновить NSTextField:

func updateMinecraftMonitorView(_ server : NSDictionary) {
        print(server)
        print("Updating view..")

        DispatchQueue.main.async {
            print(self.online.stringValue) // Outputs "Label"
            if (server["online"] as! Bool) {
                self.online.stringValue = "Online"
            } else {
                self.online.stringValue = "Offline"
            }
            print(self.online.stringValue) // Outputs "Online"
        }
    }

И этонаходится в верхней части моего файла:

    import Cocoa
    import NotificationCenter

    class TodayViewController: NSViewController, NCWidgetProviding {

        @IBOutlet weak var online: NSTextField!

    .
    .
    .

Я ожидаю, что поле будет обновлено в моем представлении, но все, что я вижу, это:

Imgur

...