在工作表可见时允许应用终止

Dav*_*eck 4 macos cocoa

我有一张附在我主窗口上的纸张.这是一个登录表,在完成之前不应允许与应用程序进行任何交互(默认为模态).但是,我希望用户能够终止该应用程序.IE,他们意识到他们需要登录,放弃并想要关闭应用程序.默认行为是播放NSBeep并继续运行.我怎么能覆盖这个呢?

Sal*_*man 6

从10.6开始,您可以控制模态表是否应该阻止应用程序终止.这应该这样做:

[myModalSheet setPreventsApplicationTerminationWhenModal:NO];
Run Code Online (Sandbox Code Playgroud)


Dav*_*eck 0

如果您endSheet:在展示表格后立即致电,它将给出我正在寻找的行为。

[NSApp beginSheet:self._loginController.window
   modalForWindow:self.window
    modalDelegate:nil
   didEndSelector:nil
      contextInfo:NULL];
[NSApp endSheet:self._loginController.window];
Run Code Online (Sandbox Code Playgroud)

这不会关闭该工作表,完成后,您可以使用 隐藏该工作表[window orderOut:nil];