我试图用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!
.
.
.
我希望在我的视野中看到该字段已更新,但是我所看到的是: