我有一个通用的 NSPanel 窗口,我在我的应用程序中用作首选项窗口。我有一个选择器,每次关闭窗口时都会调用它。该选择器的目的是保存用户选择偏好的状态(没有“保存”按钮)。
我有一个 NSButton(“CLOSE”),我很容易设置它来调用我的关闭选择器。
我对其进行了设置,以便当用户单击 NSPanel 左上角的 RED X 时,也会调用我的选择器,方法是:
NSButton *closeButton = [[self window] standardWindowButton:NSWindowCloseButton];
[closeButton setTarget:self];
[closeButton setAction:@selector(myCloseSelector:)];
这完美地工作。我的问题呢?如果用户在 NSPanel之外单击,该窗口也会关闭。例如,如果他们用鼠标点击弹出的 NSPanel 下方的浏览器窗口。这也会关闭窗口。
如何捕捉我的 NSPanel 失去焦点并关闭?我需要确保当这种情况发生时我也会调用我的选择器。
谢谢!