更新的NSTextField.stringValue未在TodayViewController视图中显示

时间:2019-07-08 04:13:21

标签: swift today-extension

我试图用Swift编写我的第一个实用程序。我正在尝试编写一个MacOS通知中心小部件,该小部件将显示Minecraft服务器状态。

我能够成功查询URL以获取JSON中的状态,然后将其解析为NSDictionary

我还读到我可以做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

0 个答案:

没有答案