#概要
阶段一,警告窗口游离在外。
阶段二,警告窗口处于主窗口内。
#阶段一 游离弹窗
1.新建项目,打开storyboard,在默认的View Controller中添加一个按钮,并使用拖拽大法
至ViewController.m 中。

1.打开ViewController.m,新增一个alert方法,并且在按钮事件中调用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| //拖拽大法后产生的按钮事件被单击的方法。 - (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.阶段一完成,效果如下。(此时的警告弹窗可以拖拽移动)

#阶段二 固定在窗口内部
1.注释掉原有调用方法,使用beginSheetModalForWindow方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| // 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.完成,效果如下。
