我正在编写的应用程序(http://code.google.com/p/blazingstars/issues/detail?id=25)遇到问题,其中我的程序是一个 menulet(菜单栏)应用程序,它使用Accessibility API 与另一个程序进行交互和控制。我做一些通常的事情,比如注册 API 通知和通过 API 调用获取窗口列表等,但我不久前意识到,如果我的程序在我正在交互的程序之后在第二个空间(虚拟桌面)中启动with 首先启动,我的程序将崩溃并烧毁,因为它无法访问有关其目标的任何信息。(有没有办法解决我错过的那个问题?)
一个简单的解决方案是弹出一个对话框,要求用户在正确的空间中重新启动程序,但是对于我来说,我无法弄清楚如何通过 NSWorkspace 或 Accessibility API 来判断我的目标在哪个空间,以便我可以将其与我所在的空间进行比较。有什么想法吗?
请注意,将收集行为设置为 NSWindowCollectionBehaviorCanJoinAllSpaces 对我没有任何好处,因为我必须在启动时做很多工作,所以我必须从一开始就与我的目标在同一个空间。