Как обнаружить NSWindow максимизировать или масштабировать событие? - PullRequest
5 голосов
/ 21 августа 2010

Как вы определяете, когда пользователь нажимает зеленую кнопку увеличения или увеличения (+) на NSWindow без использования NSWindowDidResizeNotification?

Причина, по которой я не хочу использовать NSWindowDidResizeNotification, заключается в том, что она также запускается несколько раз, когда пользователь щелкает и перетаскивает, чтобы вручную изменить размер окна. У меня есть код, который я хочу выполнить, и он должен запускаться только один раз, когда пользователь увеличивает или уменьшает окно, используя зеленую кнопку в верхнем левом углу, а не много раз при ручном изменении размера окна.

Ответы [ 2 ]

11 голосов
/ 21 августа 2010

Эти два метода делегата окна могут быть полезны:

- windowWillUseStandardFrame:defaultFrame:
- windowShouldZoom:toFrame:

Вы также можете рассмотреть возможность создания подкласса NSWindow и переопределения метода zoom:.

0 голосов
/ 16 января 2015

@ EagleOfToledo, основываясь на вашем вопросе и ваших комментариях к ответу Тодда Янделла, я думаю, вам нужен только этот метод делегата:

Swift

optional func windowDidEndLiveResize(_ notification: NSNotification)

Objective-C

- (void)windowDidEndLiveResize:(NSNotification *)notification

Этот метод будет вызываться только один раз, независимо от того, нажали ли вы кнопку масштабирования или изменили размер вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...