钩子为Mac窗口iconify按钮

时间:2014-04-27 16:06:37

标签: macos cocoa callback hook

如何在OSX上单击黄色窗口图标大小/最小化按钮时设置要触发的回调?

我的目标是截取系统范围内的最小化按钮,以便隐藏窗口(如CMD-h),而不是图标化/最小化。为此,如果存在这样的函数,我还需要一个隐藏窗口方法。

修改

在Mac应用程序中使用黄色最小化按钮会导致应用程序消失。我设置了它,以便在Dock中不会创建额外的图标(首选项设置:'将窗口最小化为应用程序图标')。当Alt-TAB稍后用于恢复应用程序时,虽然应用程序本身确实处于活动状态,但窗口不会从图标恢复。此行为与CMD-h的工作方式不同。虽然我多年来一直使用Mac,但我不断发现CMD-TAB的无用性随之而来。

1 个答案:

答案 0 :(得分:0)

我不确定您为什么要更改用户期望的正常行为。 命令H隐藏了应用程序的UI整体。 命令M或(如果在系统首选项中设置)双击标题栏将最小化窗口。

用户还可以在系统首选项中自定义键盘快捷键。

控件在响应器链中设置,以便这些键盘快捷键在响应器链中发送,并且第一个窗口在线响应。

它们在NSWindow实施,可以在很多地方被覆盖。 NSApplication子类和NSApplicationDelegate子类一样。 任何窗口委托也可以做一些不同的事情。

您应该查看所有这些类及其编程指南以及响应者链和NSEvent以了解更多信息。

你有很多选择。

根据编辑问题,答案基本不变。如果你想用cocoa做这个,看看上面的类。当您的应用变为活动和非活动状态时,您可以观察并响应NSNotifications。

如果要控制其他应用程序,则需要查看NSWorkSpace和NSRunningApplication以及AppleScript和NSAppleScript。