我希望通过点击查找器中的应用程序图标来区分Dock clic。
我可以知道叫applicationShouldHandleReopen
的是什么,还是有其他方法可以做到这一点?
答案 0 :(得分:1)
applicationShouldHandleReopen:hasVisibleWindows:
被发送给应用程序的代理人。委托消息通常由委托对象发送,在这种情况下,委托对象将是应用程序对象。
应用程序对象将该消息发送给其委托,以便处理重新打开应用程序Apple Event。因此,要查找发件人,请为该事件和get the sender from the event安装自己的Apple事件处理程序。 (示例代码使用Pascal并使用Apple Event Manager,但您可以将其转换为Objective-C和NSAppleEventDescriptor。)
那就是说,从UI的角度来看,你所做的是非常可疑的。重新打开是为了做同样的事情,无论哪个应用程序重新打开你 - 它不仅限于Finder或Dock。在常见的情况下,用户试图在应用程序已经打开时尝试启动它。
当没有窗户打开时,仅执行“重新打开”行为可能更有意义。 Cocoa内置的基于文档的应用程序支持自动执行此操作;如果您不回复applicationShouldHandleReopen::
或返回YES
,则应用程序会尝试打开新文档。您可以执行相同的检查(它甚至会告诉您是否打开了任何窗口)并在相同条件下执行所需的行为。