我有一个AppleScript到Swift的桥梁,我的applescript通过Swift AppDelegate调用。该项目是iTunes的控制器。按钮(例如播放/暂停,快进,快退)可以工作,但是我不确定如何使播放/暂停按钮根据iTunes的播放器状态更改状态(即iTunes是否正在播放我的应用程序的播放/暂停按钮)显示暂停符号)。这不仅会在我单击应用程序中的按钮时发生变化,而且在我仅与iTunes交互时也会发生变化。
答案 0 :(得分:0)
设置按钮的初始状态或其他状态,然后为iTunes分发的通知注册观察者:
let center = DistributedNotificationCenter.default()
center.addObserver(self,
selector:#selector(updatePlayerInfo),
name:NSNotification.Name("com.apple.iTunes.playerInfo"),
object:nil)
然后使用通知中的userInfo中的相应密钥进行更新:
@objc func updatePlayerInfo(_ notification: Notification) {
print(notification.userInfo?["Player State"] as! String) // example
}
您还可以添加NSWorkspace观察器,以在iTunes从您下方或其他任何位置退出时获得通知。