是否可以通过编程访问 macOS 触控栏的控制条?

Posted

技术标签:

【中文标题】是否可以通过编程访问 macOS 触控栏的控制条?【英文标题】:Is there programable access to the Control Strip of the macOS Touch Bar? 【发布时间】:2016-10-28 14:35:25 【问题描述】:

控制条 是macOS Touch Bar 的静态和全局部分,在每个上下文和应用程序中始终可见。虽然 Apple 提供了 full documentation 关于如何使用 API 在您的 macOS 应用程序中提供上下文 App Region 的信息,但我找不到任何关于如何将内容添加到控制条。

我可以想出很多不错的工具和操作,让它们总是触手可及,所以我想知道我们(开发人员)是否也能够推进控制条?是否有任何文档或是否有人自己弄清楚如何使用 Control Strip 项目?

【问题讨论】:

相关:***.com/questions/40920204/… 你有没有找到去做这件事?我试图使用github.com/shannah/Java-Objective-C-Bridge - 但我对objective-c知之甚少 @MarkHughes,我是这样做的:***.com/a/46605263/473672 【参考方案1】:

没有公共 API 或受支持的方式可以将项目添加到控制条。

【讨论】:

【参考方案2】:

事实上,有一个“私有的、未记录的”API 可以使用,如果您点击您的问题的相关评论中的链接(至this question),您就会看到。以下GitHub repository 提供了一个简洁、实用的示例,将这些作为关键元素突出显示:

DFRElementSetControlStripPresenceForIdentifier(NSString *, BOOL);
DFRSystemModalShowsCloseBoxWhenFrontMost(BOOL);

+[NSTouchBarItem addSystemTrayItem:]
+[NSTouchBar presentSystemModalFunctionBar:systemTrayItemIdentifier:]

但是,我认为目前还没有问题。例如,您在其中添加的按钮在修改控制条按钮时将无法选择(这意味着它不会与其他尝试使用它的应用程序一起使用)。

期待 Apple 为我们提供合法性!

【讨论】:

以上是关于是否可以通过编程访问 macOS 触控栏的控制条?的主要内容,如果未能解决你的问题,请参考以下文章

Touch Bar 废物利用系列 | 在触控栏上显示 Dock 应用图标

防止在 WebKit/Blink 中为 MacOS 触控板用户隐藏滚动条

触控板增强,这5款macOS 应用口碑不错!

触控板增强,这5款macOS 应用口碑不错!

如何在 Visual Studio 代码中自定义触摸栏?

如何在 Storyboard 的 Touch Bar 中添加滚动视图?