gpt4 book ai didi

Objective-C:从外部应用程序获取菜单信息

转载 作者:太空狗 更新时间:2023-10-30 03:45:57 25 4
gpt4 key购买 nike

我正在尝试编写一个 Mac OS 菜单额外应用程序,当用户按下某个热键时,它会显示一个上下文菜单,其中包含当前事件应用程序的菜单栏项。上下文菜单的显示我可以做的很好,但我似乎无法获得当前事件的应用程序的菜单栏项目。目前我正在使用 [[[NSWorkspace sharedWorkspace] runningApplications] filteredArrayUsingPredicate:] 来获取事件应用程序的名称,但 NSRunningApplication 似乎包含很少的其他信息。有什么方法可以从外部应用程序获取有关应用程序菜单的信息?

更新:

使用 ScriptingBridge如果您喜欢使用 AppleScript,框架似乎运行良好:

    SystemEventsApplication* sevApp = [SBApplication applicationWithBundleIdentifier:@"com.apple.systemevents"];
SystemEventsProcess* proc = [[sevApp applicationProcesses] objectWithName:appName];

for (SystemEventsMenuBar* menuBar in proc.menuBars) {
for (SystemEventsMenuBarItem* menuBaritem in menuBar.menuBarItems) {
NSLog(@"%@", menuBaritem.name);
}
}

将打印出应用程序菜单栏中可用的菜单列表。还没有找到获取上下文菜单的方法,所以我暂时不会称之为已回答...

这也很有用:https://robnapier.net/scripting-bridge

最佳答案

您可以使用 AppleScript模拟点击如图所示的菜单项 here ,但我不确定是否可以动态获取所有菜单项的名称,要使用该方法,您需要将名称硬编码到应用程序中。

关于Objective-C:从外部应用程序获取菜单信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11444033/

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