MacOS 开发
来源:互联网 发布:曼秀雷敦洗面奶 知乎 编辑:程序博客网 时间:2024/06/11 12:21
关键词:NSAlert
、MacOS 开发
、beginSheetModalForWindow:
、addButtonWithTitle
、setInformativeText
、NSAlertStyle
- 创建
- 设置图片
- 设置按钮
- 1可以设置多个按钮
- 2按钮的监听
- NSAlertStyle
- 自定义NSAlert
使用 xcode 编译,证书出错时,xcode会经常有个弹窗,这个效果可以用NSAlert 实现,如:
创建
- (void)openAlertPanel{ NSAlert *alert = [[NSAlert alloc] init]; alert.icon = [NSImage imageNamed:@"swift"]; //增加一个按钮 [alert addButtonWithTitle:@"OK"];//1000 //增加一个按钮 [alert addButtonWithTitle:@"NO"];//1001 //提示的标题 [alert setMessageText:@"提示的标题"]; //提示的详细内容 [alert setInformativeText:@"提示的详细内容"]; //设置告警风格 [alert setAlertStyle:NSInformationalAlertStyle]; //开始显示告警 [alert beginSheetModalForWindow:self.window completionHandler:^(NSModalResponse returnCode){ //用户点击告警上面的按钮后的回调 NSLog(@"returnCode : %d",returnCode); } ];}
设置图片
使用 .icon 便可。图片大小、位置固定在左边。如果你的图片比较小,可能会出现下面的情况:
设置按钮
1、可以设置多个按钮
1个,2个…n 个,弹窗也会根据按钮个数、按钮标题文字长度 自动排布:
2、按钮的监听
可以在 beginSheetModalForWindow: completionHandler:
方法中返回的 returnCode 来判断点击的是哪一个按钮。
第一个添加的按钮对应的是 1000,第二是 1001,第三个为 1002,以此类推。
NSAlertStyle
typedef NS_ENUM(NSUInteger, NSAlertStyle) { NSAlertStyleWarning = 0, NSAlertStyleInformational = 1, NSAlertStyleCritical = 2};
前两种在样式上没有什么太大区别,与上文图一样。第三种显示的图标会出现一个警号:
自定义NSAlert
步骤
1、通过[[[NSAlert window] contentView] addSubview:view]接口来添加子视图view;
2、设置子视图的位置和大小,依次来添加自定义内容,如表格、文本框之类的视图。
3、如果要自定义NSAlert��下方按钮样式,需要先删除原先的按钮,通过[[NSAlert window] contentView]中的子视图来实现,判断子视图中如果存在NSButton类型,则移除该子视图。
4、自定义按钮向alert视图的响应函数传递消息的方式可以通过[NSApp endSheet: [alert window] returnCode:NSAlertAlternateReturn];这样类似的语句来完成。
参考资料:
- 剑指人心:面板和警告框
http://www.macdev.io/ebook/panel.html
- 简鱼7819
http://www.jianshu.com/p/00d7c3201ede
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- JavaScript笔记(CommonJS规范)
- Hadoop日记Day20---ZooKeeper系列(二)
- 电商笔记-01
- MySQL的Replace into 与Insert into on duplicate key update真正的不同之处
- ASP专业实习(1)--后台添加与展示栏目
- MacOS 开发
- Hbuilder打包app的简单步骤
- 今天学习了一下使用NPM
- Hadoop日记Day20---Zookeeper系列(一)
- sklean 数据集特征提取
- java学习笔记(一)程序基本结构
- Android -- Activity启动流程分析
- XSS漏洞分析
- springmvc学习2 dispatcherservlet 中初始化策略