MacOS学习五:关闭窗口退出程序与NSAlert

一,关闭窗口退出程序

使用过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

个人总结分享,谢谢!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,860评论 25 709
  • 在不知不觉或者后知后觉中吧 有种堕入深渊的感觉——活的越来越没有斗志了. 这还是在跟小超包包吃火锅的时候小超用的原...
    justericwen阅读 252评论 0 0
  • 各位小伙伴们大家好,今天我演讲的主题是“学会表达”,在演讲之前,想问两个简单的问题:1、你们是否在几个人前发言就声...
    风雨135阅读 295评论 0 0
  • 培训 怎么会这么闲。
    相相相柳阅读 151评论 0 0