gpt4 book ai didi

objective-c - Mac系统状态栏焦点

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:51 24 4
gpt4 key购买 nike

我已经通过以下代码向我的 systemStatusBar 添加了一个菜单:

statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain];

然后设置它的属性。它与其他状态项(音量、日期时间、Wi-Fi、BatteryIndi​​cator 等)的唯一不同是,如果我选择它并按键盘上的向左或向右方向按钮,我将无法导航到其他项目,同样明智如果我选择另一个状态项并按方向键,它不会选择我的状态项,而是跳转到另一个状态项。我想知道有没有办法解决这个问题,或者它是非操作系统状态项的标准吗?

最佳答案

您看到的菜单栏不是一个统一的对象。左侧的应用程序菜单项属于当前应用程序。所有这些 MenuItem 都是通用 NSMenu 对象的子对象。

最右侧的状态栏项目属于系统(Spotlight、Clock、TimeMachine 等),它们也共享一个公共(public)父级 NSMenu 或仅具有一些特殊权限。

每个自定义状态栏菜单项都属于其相应的应用程序,并有自己独立的 NSMenu 父对象。如您所知,每个状态菜单都插入到属于 NSStatusBar 对象的 NSStatusItem 中。两者都直接继承自 NSObject 并且(与 NSMenu 不同)缺少用于确定状态菜单的父级或兄弟级的接口(interface)。每个状态栏项目都绝对隔离。

因此,您可以在 NSMenu 中使用箭头键轻松导航,其中每个项目都知道其子项和父项。但是,无法从状态栏菜单导航到任何其他菜单。

关于objective-c - Mac系统状态栏焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12669557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com