Arti
Arti

Reputation: 7772

Detect maximize/minimize window event and do it programmatically

How detect Minimize/Maximize window and do this programmatically. I know that i need use NSWindowdelegate, but:

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

This not working. And how to maximize/minimize programmatically have no idea.

enter image description here

Upvotes: 1

Views: 3137

Answers (1)

Volker
Volker

Reputation: 4658

It is all in Apples documentation on NSWindowDelegate: https://developer.apple.com/reference/appkit/nswindowdelegate

You can implement in you class that is set as delegate for your window:

func windowWillMiniaturize(Notification) 

Tells the delegate that the window is about to be minimized.

func windowDidMiniaturize(Notification)

Tells the delegate that the window has been minimized.

func windowDidDeminiaturize(Notification)

Tells the delegate that the window has been deminimized.

NSWindow has methods - easily to find when visiting the documentation: https://developer.apple.com/reference/appkit/nswindow

You can call from anywhere on your window:

func performMiniaturize(Any?)

Simulates the user clicking the minimize button by momentarily highlighting the button, then minimizing the window.

func miniaturize(Any?)

Removes the window from the screen list and displays the minimized window in the Dock.

func deminiaturize(Any?)

De-minimizes the window.

Upvotes: 6

Related Questions