Если кто-нибудь зайдет на этот вопрос, я разобрался, как слушать, код ниже работает. Однако доступ к атрибутам, похоже, не работает как стандартный доступ к атрибутам Python.
Обновление: у вас нет доступа к атрибутам, как в Python, т. Е. (.X), код был обновлен ниже, теперь он генерирует dict под названием song_details
Update3: обновление кода, теперь подкласса NSObject, удалено добавление addObserver из класса. Будет обновлять код на github , здесь больше нет обновлений.
import Foundation
from AppKit import *
from PyObjCTools import AppHelper
class GetSongs(NSObject):
def getMySongs_(self, song):
song_details = {}
ui = song.userInfo()
for x in ui:
song_details[x] = ui.objectForKey_(x)
print song_details
nc = Foundation.NSDistributedNotificationCenter.defaultCenter()
GetSongs = GetSongs.new()
nc.addObserver_selector_name_object_(GetSongs, 'getMySongs:', 'com.apple.iTunes.playerInfo',None)
NSLog("Listening for new tunes....")
AppHelper.runConsoleEventLoop()