關鍵詞:NSAlert
、MacOS 開發
、beginSheetModalForWindow:
、addButtonWithTitle
、setInformativeText
、NSAlertStyle
使用 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