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
