我创建了一个带退出按钮的窗口.在我的controller.h中,我创建了一个这样的动作.
-(IBAction) exitApp : (NSButton*) sender;
Run Code Online (Sandbox Code Playgroud)
我应该在相应的controller.m中写什么,以便当我单击"退出"按钮时应用程序终止.
Yuj*_*uji 11
您甚至不必为此目的编写动作方法.主nib的"文件所有者"是NSApplication表示正在运行的应用程序本身的实例,它有一个terminate:终止应用程序的方法.
因此,只需将按钮连接到terminate:"文件所有者"的方法即可.您可以看到"界面"构建器提供的菜单栏的"退出"条目连接到同一目标的相同方法.
如果你真的坚持,实施
-(IBAction)exitApp:(NSButton*)sender {
[[NSApplication sharedApplication] terminate:nil];
}
Run Code Online (Sandbox Code Playgroud)
最后,注意,应用程序不作出退出,但有申请到退出.所以,在你的按钮上,不要把标签退出 ......这是一个Windows主义.相反,使用动词Quit.方法选择器中的动词终止是Cocoa术语中保留的NextStep-ism,但您不应在应用程序的可见部分中使用它.
另一件事是你可以实现委托方法
-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication
{
return YES;
}
Run Code Online (Sandbox Code Playgroud)
以便应用程序在最后一个窗口关闭时自动退出,然后您可以取消退出按钮.请参阅文档.
小智 10
如果您的唯一目标是终止该应用程序,则不需要针对该应用程序执行自定义操作.只需将按钮挂钩到terminate:Interface Builder中Application对象中的操作即可.
如果确实需要该自定义exitApp:操作,可以像这样定义:
- (IBAction)exitApp:(NSButton*)sender {
// custom termination code
[[NSApplication sharedApplication] terminate:nil];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5315 次 |
| 最近记录: |