如何使用Swift在Cocoa中添加Command-Q逻辑?
我想在我的Cocoa应用程序中添加一些逻辑,当用户输入Command-Q试图退出应用程序时,但我如何在Swift中添加它 我想做的是这样的,但这是在Objective-C上,当我尝试将它移植到我的Swift应用程序时,它没有成功,因为它看起来像是如何使用Swift在Cocoa中添加Command-Q逻辑?,cocoa,swift,xcode6,Cocoa,Swift,Xcode6,我想在我的Cocoa应用程序中添加一些逻辑,当用户输入Command-Q试图退出应用程序时,但我如何在Swift中添加它 我想做的是这样的,但这是在Objective-C上,当我尝试将它移植到我的Swift应用程序时,它没有成功,因为它看起来像是applicationShouldTerminate在Swift中不再可用,因为它对我的Xcode中方法的完成没有反应 另外,当我试图像上面的帖子那样编写NSTerminateNow时,我遇到了一个无法解决的错误,因此NSTerminateNow也在Sw
applicationShouldTerminate
在Swift中不再可用,因为它对我的Xcode中方法的完成没有反应
另外,当我试图像上面的帖子那样编写NSTerminateNow
时,我遇到了一个无法解决的错误,因此NSTerminateNow
也在Swift和Xcode 6中消失了
所以,如果我想在用户将Command-Q放入我的Swift和Cocoa应用程序后添加一些逻辑,我如何在Xcode 6中实现它?我是否应该避免使用
应用程序应该终止
方法?同样的方法在Swift中也可以正常工作:
class AppDelegate: NSObject, NSApplicationDelegate {
// ...
func applicationShouldTerminate(sender: NSApplication!) -> NSApplicationTerminateReply {
let shouldTerminate = ... // Should I stay or should I go?
return shouldTerminate ? .TerminateNow : .TerminateCancel
}
}
同样的方法适用于Swift,没有问题:
class AppDelegate: NSObject, NSApplicationDelegate {
// ...
func applicationShouldTerminate(sender: NSApplication!) -> NSApplicationTerminateReply {
let shouldTerminate = ... // Should I stay or should I go?
return shouldTerminate ? .TerminateNow : .TerminateCancel
}
}
它还在那里,只是藏起来了。如果您在应用程序代理的声明中命令单击NSApplicationedLegate,您可以看到它实现的所有方法,包括:
func applicationShouldTerminate(sender: NSApplication!) -> NSApplicationTerminateReply {
// stuff and return stuff
}
似乎(目前希望如此)协议中声明的可选方法并不是由autocomplete建议的。它仍然存在,只是隐藏起来了。如果您在应用程序代理的声明中命令单击NSApplicationedLegate,您可以看到它实现的所有方法,包括:
func applicationShouldTerminate(sender: NSApplication!) -> NSApplicationTerminateReply {
// stuff and return stuff
}
似乎(希望现在)协议中声明的可选方法不是autocomplete建议的。感谢您提供有关签出所有方法声明的信息!我错误地按原样定义了
NSTerminateNow
——它应该是.TerminateNow
,正如Martin R所建议的那样,这导致了第二个问题。谢谢。感谢您提供有关签出所有方法声明的信息!我错误地按原样定义了NSTerminateNow
——它应该是.TerminateNow
,正如Martin R所建议的那样,这导致了第二个问题。谢谢。当我点击命令Q时,方法不会调用。当我点击命令Q时,方法不会调用。