Chu*_*uck 28
您可以实现applicationShouldTerminateAfterLastWindowClosed:在应用程序的委托中返回YES.但是在做这个之前我会三思而后行,因为除了像计算器这样的小型"实用"应用程序外,它在Mac上非常不寻常,大多数Mac用户都不会欣赏你的应用程序如此奇怪.
Ste*_*eod 11
将此代码段添加到您应用的代理中:
-(BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)app {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
由于问题主要是关于Cocoa编程而不是特定语言(Objective-C),这里是Swuck版本的Chuck和Steve的答案:
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationShouldTerminateAfterLastWindowClosed(sender: NSApplication) -> Bool {
return true
}
// Your other application delegate methods ...
}
Run Code Online (Sandbox Code Playgroud)
对于Swift 3,将方法定义更改为
func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
return true
}
Run Code Online (Sandbox Code Playgroud)
你的主窗口应该有一个IBOutlet.例如:IBOutlet NSWindow*mainWindow;
- (void)awakeFromWindow {
[mainWindow setDelegate: self];
}
- (void)windowWillClose:(NSNotification *)notification {
[NSApp terminate:self];
}
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,您应该向NSNotificationCenter添加一个观察者,以获取Notification NSWindowWillCloseNotification.不要忘记检查右侧窗口是否关闭.
| 归档时间: |
|
| 查看次数: |
5473 次 |
| 最近记录: |