一步一步熟悉Mac app开发(七)之NSAlert
2018-08-01 本文已影响0人
拳战攻城师
概要
阶段一,警告窗口游离在外。
阶段二,警告窗口处于主窗口内。
阶段一 游离弹窗
1.新建项目,打开storyboard,在默认的View Controller中添加一个按钮,并使用拖拽大法
至ViewController.m 中。
image.png
1.打开ViewController.m,新增一个alert方法,并且在按钮事件中调用。
//拖拽大法后产生的按钮事件被单击的方法。
- (IBAction)btn_surprise:(id)sender {
[self alert];
}
//自定义alert方法
- (void)alert{
NSAlert *alert = [[NSAlert alloc] init];
alert.messageText = @"系统提示:";
alert.informativeText = @"你有没有发现其实你是头可爱的小猪猪?";
[alert addButtonWithTitle:@"嗯,发现了。"];
[alert addButtonWithTitle:@"呃?是吗?"];
[alert addButtonWithTitle:@"风太大,没听清楚你说啥。"];
NSInteger ret = [alert runModal];
switch(ret){
case NSAlertFirstButtonReturn:
printf("你是说你发现你是头猪?\n");
break;
case NSAlertSecondButtonReturn:
printf("你是说你没发现你是头猪?\n");
break;
case NSAlertThirdButtonReturn:
printf("不能愉快聊天了,886。\n");
break;
default:
printf("可能发现了一个错误。\n");
break;
}
}
2.阶段一完成,效果如下。(此时的警告弹窗可以拖拽移动)
image.png
阶段二 固定在窗口内部
1.注释掉原有调用方法,使用beginSheetModalForWindow方法。
// NSInteger ret = [alert runModal];
// switch(ret){
// case NSAlertFirstButtonReturn:
// printf("你是说你发现你是头猪?\n");
// break;
// case NSAlertSecondButtonReturn:
// printf("你是说你没发现你是头猪?\n");
// break;
// case NSAlertThirdButtonReturn:
// printf("不能愉快聊天了,886。\n");
// break;
// default:
// printf("可能发现了一个错误。\n");
// break;
// }
[alert beginSheetModalForWindow:self.view.window completionHandler:^(NSModalResponse returnCode) {
//此处省略处理语句(为各位看官省流量,真的不是我懒。)
}];
2.完成,效果如下。
image.png