当 NSStatusItem 隐藏时被通知

发布于 2024-12-09 15:54:33 字数 656 浏览 4 评论 0 原文

我有一个使用 NSStatusItem 的应用程序。在小屏幕上,状态栏没有太多空间。当用户切换到具有大量菜单项的应用程序时,我的状态项会被隐藏。有没有办法获得有关此事的通知?

到目前为止我尝试过的:

  • 我检查了是否触发了任何 NSNotification:否
  • 我检查了 statusView 是否从视图层次结构中删除:否
  • 我检查了 isHiddenOrHasHiddenAncestorisHiddenOrHasHiddenAncestor code>: No

这是我用来创建状态项的代码。

self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
MyStatusView *maView = [[[MyStatusView alloc] initWithFrame:CGRectMake(0, 0, 50, 22)] autorelease];
[statusItem setTitle:@"Ma Status Item"];
[statusItem setView:maView];

I have an app which uses an NSStatusItem. On small screens there's not much space in the status bar. When a user switches to an application with a lot of menu items, my status item gets hidden. Is there a way to get notified about this?

What I tried so far:

  • I checked if any NSNotification is fired: No
  • I checked if the statusView is removed from the view hierarchy: No
  • I checked isHiddenOrHasHiddenAncestor: No

Here's the code I use to create the status item.

self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
MyStatusView *maView = [[[MyStatusView alloc] initWithFrame:CGRectMake(0, 0, 50, 22)] autorelease];
[statusItem setTitle:@"Ma Status Item"];
[statusItem setView:maView];

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绻影浮沉 2024-12-16 15:54:33

您很聪明地意识到,当隐藏状态项时,其窗口将移至背景中。

现在您正在寻找的通知是:
NSWindowDidResignKeyNotification
(或NSWindowDidResignMainNotification 取决于您的应用程序的上下文)

有关关键窗口和主窗口之间差异的清晰解释窗口,请参阅这个< /a>.

It's pretty smart of you to realize that when a status item is hidden, its window will be moved into the background.

Now the notification you're looking for is:
NSWindowDidResignKeyNotification
(or NSWindowDidResignMainNotification depending on the context of your application)

For a clear explanation about the difference between a key window and a main window, see this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文