Mac 开发中设置 关闭 以及最小化 最大化按钮事件处理
2017-03-14 17:59
2321 查看
Xcode默认的向导生成的工程的带有关闭,最小化,最大化这几个按钮,
关闭按钮的事件,最让窗口最小化到Dock中,但当你点击Dock却无法恢复,而在屏幕的顶部菜单中也不会多一个与你程序同名的“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{
[NSApp terminate:self];
}
关闭按钮的事件,最让窗口最小化到Dock中,但当你点击Dock却无法恢复,而在屏幕的顶部菜单中也不会多一个与你程序同名的“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{
[NSApp terminate:self];
}
相关文章推荐
- Mac 开发中如何设置 关闭 以及最小化 最大化按钮事件处理
- Mac窗口的关闭,最小化,最大化按钮事件处理
- Mac应用开发--隐藏窗口里默认按钮(最大化、最小化、关闭等)的方法 NSWindowCloseButton
- 在mfc中,设置一个隐藏菜单栏,工具栏,状态栏,最大化、最小化、关闭按钮的窗体
- WinForm 最大化、最小化、关闭按钮事件的拦截
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件
- 编程设置最小化、最大化、关闭按钮 相关讨论
- 在mfc中,如何设置一个隐藏菜单栏,工具栏,状态栏,最大化、最小化、关闭按钮的窗体
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
- 怎么拦截窗口上的最大化\最小化\关闭按钮事件
- win7最小化最大化关闭按钮样式设置
- C# WinForm 最大化、最小化、关闭按钮事件的拦截 .
- 在程序中设置最小化、最大化、关闭按钮
- 重载WndProc函数,处理最大化最小化关闭窗体事件
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件 .
- Qt 设置窗口的最小化、最大化、关闭按钮
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件【整理】
- 使对话框的最大化、最小化和关闭按钮变灰以及对其重载的方法
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法
- 最大化/最小化/还原/关闭以及按钮图片的添加