一,关闭窗口退出程序
使用过mac的伙伴应该知晓一种情况,mac上的一些应用点击应用窗口左上角“x”按钮也就是关闭按钮后,应用并非真正退出,而是处于一种模态运行当中。
由于工作项目的需要,要求点击关闭按钮,关闭应用窗口的同时关闭应用程序运行。以下提出两种方法:
一种很简单的方法:直接在AppDelegate中添加
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender{
return YES;
}
BOOL布尔值返回YES表示窗口程序两者都关闭,返回NO表示只关闭窗口;
另一种方法:在窗口window所在的windowController中添加NSWindowDelegate代理方法
在- (void)windowDidLoad 方法中添加代理
self.window.delegate = self;
实现代理方法
//控制的窗口的关闭
- (BOOL)windowShouldClose:(id)sender {
exit(0);
return YES;
}
其中BOOL布尔值本身返回值是对当前窗口是否关闭的控制
二,NSAlert使用
NSAlert *alert = [[NSAlert alloc] init];
alert.messageText = @"提示";
[alert setShowsHelp:NO];
alert.informativeText = @"请输入您的口令";
alert.alertStyle = NSAlertStyleWarning;
[alert addButtonWithTitle:@"确定"];
[alert runModal];
其中messageText是提示的标题,informativeText是提示内容,alertStyle是提示的样式,runModal则是运行alert提示框!
当然也可以自定义NSAlert,通过[[[NSAlert window] contentView] addSubview:view]接口来添加子视图view,并设置子视图的位置和大小,依次来添加自定义内容,如表格、文本框之类的视图。
如果要自定义NSAlert👇下方按钮样式,需要先删除原先的按钮,通过[[NSAlert window] contentView]中的子视图来实现,判断子视图中如果存在NSButton类型,则移除该子视图。
自定义按钮向alert视图的响应函数传递消息的方式可以通过[NSApp endSheet: [alert window] returnCode:NSAlertAlternateReturn];这样类似的语句来完成。
参考博客:blog.csdn.net/freewaywalker/article/details/38275491
个人总结分享,谢谢!!!