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

Art*_*rti 1 macos cocoa nswindow swift

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

class AppDelegate: NSObject, NSApplicationDelegate, NSWindowdelegate {
    func windowWillMiniaturize(_ notification: Notification) {
            print("1")
        }
}
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

Vol*_*ker 6

这一切都在苹果文档中NSWindowDelegatehttps ://developer.apple.com/reference/appkit/nswindowdelegate

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

func windowWillMiniaturize(Notification) 
Run Code Online (Sandbox Code Playgroud)

告诉委托者窗口即将最小化。

func windowDidMiniaturize(Notification)
Run Code Online (Sandbox Code Playgroud)

告诉委托者窗口已最小化。

func windowDidDeminiaturize(Notification)
Run Code Online (Sandbox Code Playgroud)

告诉委托人窗口已减少。

NSWindow 有方法 - 访问文档时很容易找到:https ://developer.apple.com/reference/appkit/nswindow

您可以从窗口上的任何位置调用:

func performMiniaturize(Any?)
Run Code Online (Sandbox Code Playgroud)

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

func miniaturize(Any?)
Run Code Online (Sandbox Code Playgroud)

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

func deminiaturize(Any?)
Run Code Online (Sandbox Code Playgroud)

取消最小化窗口。