macos – 获取NSStatusItem框架更改的通知?

macos – 获取NSStatusItem框架更改的通知?,第1张

概述在使用带有自定义视图的NSStatusItem的应用程序中,如下所示: …如何在以下情况下收到通知: >状态栏因全屏应用而被隐藏 >状态项移动位置,因为添加/删除/调整了其他项目的大小? 当项目更改位置时,两者都是将自定义视图移动到正确位置所必需的. 有一个方法 – [NSStatusItem setView:].为状态项设置自定义视图时,此视图将自动插入特殊状态栏窗口.您可以使用方法 – [NS 在使用带有自定义视图的NsstatusItem的应用程序中,如下所示:

…如何在以下情况下收到通知:

>状态栏因全屏应用而被隐藏
>状态项移动位置,因为添加/删除/调整了其他项目的大小?

当项目更改位置时,两者都是将自定义视图移动到正确位置所必需的.

解决方法 有一个方法 – [NsstatusItem setVIEw:].为状态项设置自定义视图时,此视图将自动插入特殊状态栏窗口.您可以使用方法 – [NSVIEw窗口]访问该窗口以观察其NSWindowDIDMoveNotification:

- (voID)applicationDIDFinishLaunching:(NSNotification *)notification{    NsstatusItem *statusItem = [self newStatusItem];    NSVIEw *statusItemVIEw = [self newStatusItemVIEw];    statusItem.vIEw = statusItemVIEw;    NSNotificationCenter *dnc = [NSNotificationCenter defaultCenter];    [dnc addobserver:self selector:@selector(statusbarDIDMove:)                name:NSWindowDIDMoveNotification object:statusItemVIEw.window];}- (voID)statusbarDIDMove:(NSNotification *)note{    NSWindow *window = note.object;    NSLog(@"%@",NsstringFromrect(window.frame)); // i.e. {{1159,900},{24,22}}}

每次状态栏变为可见或隐藏以及移动图标时,您都会收到通知.这是您更新d出式面板位置的机会.

总结

以上是内存溢出为你收集整理的macos – 获取NSStatusItem框架更改的通知?全部内容,希望文章能够帮你解决macos – 获取NSStatusItem框架更改的通知?所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1032824.html

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

发表评论

登录后才能评论

评论列表(0条)

保存