如何检测NSWindow最大化或缩放事件?

时间:2010-08-21 00:51:16

标签: objective-c cocoa xcode

如何在不使用NSWindowDidResizeNotification的情况下检测到用户点击NSWindow上的绿色最大化或缩放(+)按钮的时间?

我不想使用NSWindowDidResizeNotification的原因是因为当用户点击并拖动以手动调整窗口大小时,也会重复触发。我有一些我想要执行的代码,只有当用户使用左上角的绿色按钮缩放缩小窗口时,它才会触发一次手动调整窗口大小的次数不多。

2 个答案:

答案 0 :(得分:11)

这两个窗口委托方法可能很有用:

- windowWillUseStandardFrame:defaultFrame:
- windowShouldZoom:toFrame:

您也可以考虑继承NSWindow并覆盖zoom:方法。

答案 1 :(得分:0)

@EagleOfToledo,基于您的问题以及您对Todd Yandell的回答,我认为您只需要这种委托方法:

夫特

optional func windowDidEndLiveResize(_ notification: NSNotification)

目标-C

- (void)windowDidEndLiveResize:(NSNotification *)notification

只有在您单击缩放按钮或手动调整大小时,才会调用此方法。