MacOS學(xué)習(xí)五:關(guān)閉窗口退出程序與NSAlert

一,關(guān)閉窗口退出程序

使用過mac的伙伴應(yīng)該知曉一種情況,mac上的一些應(yīng)用點(diǎn)擊應(yīng)用窗口左上角“x”按鈕也就是關(guān)閉按鈕后,應(yīng)用并非真正退出,而是處于一種模態(tài)運(yùn)行當(dāng)中。

由于工作項目的需要,要求點(diǎn)擊關(guān)閉按鈕,關(guān)閉應(yīng)用窗口的同時關(guān)閉應(yīng)用程序運(yùn)行。以下提出兩種方法:

一種很簡單的方法:直接在AppDelegate中添加

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender{

? ? ? ? return YES;

}

BOOL布爾值返回YES表示窗口程序兩者都關(guān)閉,返回NO表示只關(guān)閉窗口;

另一種方法:在窗口window所在的windowController中添加NSWindowDelegate代理方法

在- (void)windowDidLoad 方法中添加代理

self.window.delegate = self;

實現(xiàn)代理方法

//控制的窗口的關(guān)閉

- (BOOL)windowShouldClose:(id)sender {

exit(0);

return YES;

}

其中BOOL布爾值本身返回值是對當(dāng)前窗口是否關(guān)閉的控制

二,NSAlert使用

NSAlert *alert = [[NSAlert alloc] init];

alert.messageText = @"提示";

[alert setShowsHelp:NO];

alert.informativeText = @"請輸入您的口令";

alert.alertStyle = NSAlertStyleWarning;

[alert addButtonWithTitle:@"確定"];

[alert runModal];

其中messageText是提示的標(biāo)題,informativeText是提示內(nèi)容,alertStyle是提示的樣式,runModal則是運(yùn)行alert提示框!

當(dāng)然也可以自定義NSAlert,通過[[[NSAlert window] contentView] addSubview:view]接口來添加子視圖view,并設(shè)置子視圖的位置和大小,依次來添加自定義內(nèi)容,如表格、文本框之類的視圖。

如果要自定義NSAlert??下方按鈕樣式,需要先刪除原先的按鈕,通過[[NSAlert window] contentView]中的子視圖來實現(xiàn),判斷子視圖中如果存在NSButton類型,則移除該子視圖。

自定義按鈕向alert視圖的響應(yīng)函數(shù)傳遞消息的方式可以通過[NSApp endSheet: [alert window] returnCode:NSAlertAlternateReturn];這樣類似的語句來完成。

參考博客:blog.csdn.net/freewaywalker/article/details/38275491

個人總結(jié)分享,謝謝?。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,221評論 4 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,001評論 25 709
  • 在不知不覺或者后知后覺中吧 有種墮入深淵的感覺——活的越來越?jīng)]有斗志了. 這還是在跟小超包包吃火鍋的時候小超用的原...
    justericwen閱讀 261評論 0 0
  • 各位小伙伴們大家好,今天我演講的主題是“學(xué)會表達(dá)”,在演講之前,想問兩個簡單的問題:1、你們是否在幾個人前發(fā)言就聲...
    風(fēng)雨135閱讀 321評論 0 0
  • 培訓(xùn) 怎么會這么閑。
    相相相柳閱讀 167評論 0 0

友情鏈接更多精彩內(nèi)容