Я пишу небольшую программу на macOS как программу меню, которая может определять информацию о окнах другого приложения, такую как положение окна, есть ли у него кнопка по умолчанию и т. Д.
Я могу добавить наблюдателя, чтобы отслеживать, когда другое приложение активировалось, и получать объект NSRunningApplication. Но информация в NSRunningApplication ограничена, включает только имя пакета, URL, значок, скрытую или нет информацию.
@objc func onAppFocusChange(_ notification: NSNotification){
guard let userInfo = notification.userInfo!["NSWorkspaceApplicationKey"] as? NSRunningApplication else {return}
guard let appName = userInfo.localizedName else {return}
print("\(appName)")
}
func addNotifications(){
NSWorkspace.shared.notificationCenter.addObserver(self, selector: #selector(onAppFocusChange(_:)), name: NSWorkspace.didActivateApplicationNotification, object: nil)
}
Как заголовок моего вопроса, как я могу получить информацию о текущем окне другого приложения, такую как позиция, иерархия подпредставления и т. Д.