2013-07-30 54 views
0

为了隐藏我使用此代码的应用程序图标:隐藏应用程序图标将其关闭窗口

ProcessSerialNumber psn = { 0, kCurrentProcess }; 
TransformProcessType(&psn, kProcessTransformToUIElementApplication); 

此代码隐藏图标,但它也将关闭应用程序窗口。没有关闭主窗口可以隐藏图标吗?

[self.window setCanHide:NO]; 

这不是一个解决方案,因为当用户从其他应用程序菜单中的应用程序选择Hide other不会被隐藏。

谢谢!

回答

1

我不知道我在最后一句中理解你的意思“这不是一个解决方案,因为当用户选择隐藏其他应用程序菜单应用程序时,它不会被隐藏。”但是,如果你需要的窗口,当你通过代码

ProcessSerialNumber psn = { 0, kCurrentProcess }; 
TransformProcessType(&psn, kProcessTransformToUIElementApplication); 

保持开放而你希望它可以隐藏自身在其他一些时候,你可以尝试使用

[yourWindow setCanHide:NO]; 
ProcessSerialNumber psn = { 0, kCurrentProcess }; 
TransformProcessType(&psn, kProcessTransformToUIElementApplication); 

而且一旦代码运行以隐藏应用程序图标,使用[yourWindow setCanHide:YES];,以便窗口在其他进程中隐藏。 (例如,这可能有助于防止在切换“显示应用程序图标”按钮时隐藏偏好设置窗口,但仍希望在与应用程序的其他窗口交互时隐藏偏好设置窗口。

+0

我想要知道热创建回调为TransformProcessType函数。很可能这是不可能的。根据你的回答,我这样做:[self performSelector:@selector(setSuppressHideWindows :) withObject:[NSNumber numberWithBool:YES] afterDelay:2]; –

相关问题