Mac窗口的关闭,最小化,最大化按钮事件处理

本文将详细解释如何解决Xcode默认向导生成的程序在关闭后无法恢复到原来样式的问题,包括点击关闭按钮后让窗口最小化到Dock栏而不自动添加菜单项的方法,以及如何在程序关闭时让应用退出的简单实现。

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];

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值