objective-c – 不激活显示窗口(将应用程序保持在活动状态下)

objective-c – 不激活显示窗口(将应用程序保持在活动状态下),第1张

概述我需要在第三方应用程序上方显示一个窗口(没有标题栏),而我的窗口没有关注. 我尝试使用NSPanel并设置启用非激活,但这没有帮助. 我尝试了orderFront:self,但这也没有帮助. 我总是需要添加[NSApp activateIgnoringOtherApps:YES];因为窗口不会显示. 我这里有一个仅用于此功能的示例项目: http://users.telenet.be/prulle 我需要在第三方应用程序上方显示一个窗口(没有标题栏),而我的窗口没有关注.

我尝试使用NSPanel并设置启用非激活,但这没有帮助.

我尝试了orderFront:self,但这也没有帮助.

我总是需要添加[NSApp activateIgnoringOtherApps:YES];因为窗口不会显示.

我这里有一个仅用于此功能的示例项目:
http://users.telenet.be/prullen/TopW2.zip

UIElement在应用程序的pList文件中设置为true,因此没有停靠.您可以同时按ALT SPACE激活窗口.您将看到它下面的应用程序失去焦点.有关如何解决此问题的任何想法?我见过其他应用程序这样做,所以我知道它是可能的.

编辑:这是迄今为止的代码.请记住,窗口是非激活的NSPanel.
我仍然需要最后一个NSApp activateIgnoringOtherApps行,否则它不会显示.但当然这使得窗口成为活跃的窗口.

_windowController = [[MyWindowController alloc] initWithWindowNibname:@"MyWindowController"];    [[_windowController window] setLevel:NSnormalWindowLevel+1];    [[_windowController window] orderFrontRegardless];    [_windowController showWindow:self];   [NSApp activateIgnoringOtherApps:YES];

我还将NSPanel子类化,并添加了两种方法:

- (BOol)canBecomeKeyWindow{    return YES;}- (BOol)canBecomeMainWindow{    return YES;}

编辑:好的,取消选中setHIDesOnDeactivate会修复此问题,但现在窗口永远不会隐藏.当用户按下它下方的应用程序或切换到另一个应用程序时,我需要隐藏它.

编辑2:好的,这似乎解决了上述问题:

- (voID)awakeFromNib{    [[NSNotificationCenter defaultCenter] addobserver:self selector:@selector(hIDeWindow) name:NSWindowDIDResignKeyNotification object:nil];}- (voID)hIDeWindow {    [self setHIDesOnDeactivate:YES];}

不确定是否有更好的方法.

对于那些想知道如何显示窗口的人:

[[_windowController window] setLevel:NSPopUpMenuWindowLevel];    [[_windowController window] orderFrontRegardless];    [[_windowController window] makeKeyWindow];    [_windowController showWindow:self];
解决方法 其中任何一个都应该做到这一点:

>使用 – [NSWindow orderFrontRegardless]在前面获取正常级别窗口而不激活相应的应用程序,或者>使用 – [NSWindow setLevel:]将窗口级别增加到高于NSnormalWindowLevel的值

总结

以上是内存溢出为你收集整理的objective-c – 不激活显示窗口(将应用程序保持在活动状态下)全部内容,希望文章能够帮你解决objective-c – 不激活显示窗口(将应用程序保持在活动状态下)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1016366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存