概要
階段一安疗,警告窗口游離在外乳蛾。
階段二暗赶,警告窗口處于主窗口內(nèi)。
階段一 游離彈窗
1.新建項(xiàng)目肃叶,打開(kāi)storyboard蹂随,在默認(rèn)的View Controller中添加一個(gè)按鈕,并使用拖拽大法
至ViewController.m 中因惭。
image.png
1.打開(kāi)ViewController.m岳锁,新增一個(gè)alert方法,并且在按鈕事件中調(diào)用蹦魔。
//拖拽大法后產(chǎn)生的按鈕事件被單擊的方法激率。
- (IBAction)btn_surprise:(id)sender {
[self alert];
}
//自定義alert方法
- (void)alert{
NSAlert *alert = [[NSAlert alloc] init];
alert.messageText = @"系統(tǒng)提示:";
alert.informativeText = @"你有沒(méi)有發(fā)現(xiàn)其實(shí)你是頭可愛(ài)的小豬豬?";
[alert addButtonWithTitle:@"嗯,發(fā)現(xiàn)了勿决。"];
[alert addButtonWithTitle:@"呃乒躺?是嗎?"];
[alert addButtonWithTitle:@"風(fēng)太大低缩,沒(méi)聽(tīng)清楚你說(shuō)啥嘉冒。"];
NSInteger ret = [alert runModal];
switch(ret){
case NSAlertFirstButtonReturn:
printf("你是說(shuō)你發(fā)現(xiàn)你是頭豬曹货?\n");
break;
case NSAlertSecondButtonReturn:
printf("你是說(shuō)你沒(méi)發(fā)現(xiàn)你是頭豬?\n");
break;
case NSAlertThirdButtonReturn:
printf("不能愉快聊天了讳推,886顶籽。\n");
break;
default:
printf("可能發(fā)現(xiàn)了一個(gè)錯(cuò)誤。\n");
break;
}
}
2.階段一完成银觅,效果如下礼饱。(此時(shí)的警告彈窗可以拖拽移動(dòng))
image.png
階段二 固定在窗口內(nèi)部
1.注釋掉原有調(diào)用方法,使用beginSheetModalForWindow方法究驴。
// NSInteger ret = [alert runModal];
// switch(ret){
// case NSAlertFirstButtonReturn:
// printf("你是說(shuō)你發(fā)現(xiàn)你是頭豬镊绪?\n");
// break;
// case NSAlertSecondButtonReturn:
// printf("你是說(shuō)你沒(méi)發(fā)現(xiàn)你是頭豬?\n");
// break;
// case NSAlertThirdButtonReturn:
// printf("不能愉快聊天了纳胧,886镰吆。\n");
// break;
// default:
// printf("可能發(fā)現(xiàn)了一個(gè)錯(cuò)誤。\n");
// break;
// }
[alert beginSheetModalForWindow:self.view.window completionHandler:^(NSModalResponse returnCode) {
//此處省略處理語(yǔ)句(為各位看官省流量跑慕,真的不是我懶万皿。)
}];
2.完成,效果如下核行。
image.png