Mac 開發中如何設置 關閉 以及最小化 最大化按鈕事件處理


Xcode默認的向導生成的工程的帶有關閉,最小化,最大化這幾個按鈕,

關閉按鈕的事件,最讓窗口最小化到Dock中,但當你點擊Dock卻無法恢復,而在Window菜單中也不會多一個與你程序同名的“X-X-X”菜單項,這樣的程序體驗不好,如果提到App Store肯定也是會被拒的。當然你如果在程序起動的時候,首先不點擊“關閉”按鈕,而是點擊最小化,你會發現菜單中的Window菜單欄中的最下面會多出一個與程序同名的“X-X-X”菜單項。這是程序自成生成的。當你點“X-X-X”菜單項時,程序就會恢復到原來的樣式。

觀察很多程序的處理方法:

(1)一個是點擊關閉按鈕后了讓其最小化到Dock欄中,系統不自動在Window菜單中添加“X-X-X”菜單項,注意此時窗口中屬性中的"Release When Closed"選項不能勾選,否則就會出錯。

 

-(BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag

 {

    [window makeKeyAndOrderFront:nil];

    return YES;

}

 

 (2)一個方法是點擊關閉按鈕后直接讓程序退出,這個方法比較簡單。

 

//Make ourselves delegate so we'll receive actions as firstResponder

[NSApp setDelegate:self];

 

//Quit the application when the main window is closed (seems to be accepted in Mac OS X)

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(closeWindow)name:NSWindowWillCloseNotification object:mainWindow];

 

 

- (void)closeWindow

{

[NSAppterminate:self];

}

文字轉載:http://m.blog.csdn.net/blog/yuanya/24813975


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM