检测最大化/最小化窗口事件并以编程方式执行

时间:2016-11-10 20:45:00

标签: swift macos cocoa nswindow

如何检测最小化/最大化窗口,以编程方式执行此操作。我知道我需要使用NSWindowdelegate,但是:

class AppDelegate: NSObject, NSApplicationDelegate, NSWindowdelegate {
    func windowWillMiniaturize(_ notification: Notification) {
            print("1")
        }
}

这不起作用。如何以编程方式最大化/最小化不知道。

enter image description here

1 个答案:

答案 0 :(得分:3)

所有这些都在NSWindowDelegate上的Apples文档中:https://developer.apple.com/reference/appkit/nswindow

您可以在为您的窗口设置为委托的类中实现:

func windowWillMiniaturize(Notification) 

告诉代表该窗口即将被最小化。

func windowDidMiniaturize(Notification)

告诉代表该窗口已被最小化。

func windowDidDeminiaturize(Notification)

告诉代表该窗口已被最小化。

NSWindow有方法 - 在访问文档时很容易找到:{{3}}

您可以在窗口的任何位置拨打电话:

func performMiniaturize(Any?)

通过暂时突出显示按钮,然后最小化窗口,模拟用户单击最小化按钮。

func miniaturize(Any?)

从屏幕列表中删除窗口,并在Dock中显示最小化窗口。

func deminiaturize(Any?)

取消窗口最小化。