#macos #mac #touchbar

rubrail

Rubrail 是一个用于与 Mac 触控条交互的 Rust 库

13 个版本 (8 个破坏性更新)

使用旧的 Rust 2015

0.9.1 2020 年 12 月 12 日
0.9.0 2019 年 7 月 12 日
0.8.0 2019 年 6 月 29 日
0.7.0 2018 年 4 月 2 日
0.5.0 2017 年 7 月 30 日

#67 in macOS 和 iOS API

Download history 15/week @ 2024-03-10 37/week @ 2024-03-31 1/week @ 2024-04-07

每月 75 次下载
2 crates 中使用

Apache-2.0

1.5MB
1.5K SLoC

Rubrail

Build Status

Rubrail 是一个用于构建 Mac OS X 触控条界面的 Rust 库。

它在触控条的右侧“控制条”区域创建一个持久图标。这使得您可以在任何时间访问您设计的触控条菜单,无论当前活动的是哪个应用程序。

使用纯 Rust API,您可以使用最常用的项目创建触控条 UI:按钮、标签、滑块、滑动选择(水平滚动文本选择)和递归菜单。

以下屏幕截图的源代码位于 examples/example.rs

运行示例

$cargo test && cargorun --exampleexample

Cargo Crate

Crates.io Version

文档

Rubrail API 文档

信息

警告 -- 私有 API

请注意,根据苹果的指南,访问“控制条”是禁止的。Rubrail 使用 私有 API 创建其菜单,因此不适用于通过 App Store 分发。为需要提供触控条支持但希望避免在分发时链接到私有框架的应用程序提供了“虚拟”实现。使用 --no-default-features Cargo 标志来获取不执行任何操作的虚拟实现。

注意 -- 需要应用程序包

使用 Rubrail 与触控条服务通信的应用程序 必须 从应用程序包 (.app) 中执行。直接运行可执行文件不会崩溃,但图标不会被注册到触控条服务,因此您的触控条 UI 将不可用。

包含的示例使用 fruitbasket crate 自动重新启动自身作为 OS X 应用程序包。

限制

不支持更改现有条目的 UI。要更改 UI 布局,必须创建一个新的条目并完全替换旧的条目。滑动选择器是一个例外:其内容由回调管理,但它们在条目可见时不进行实时刷新。用户必须关闭和重新打开条目才能看到滑动选择器内容的变化。

触摸条API支持使用自定义视图进行几乎所有操作。Rubrail不支持。仅暴露了非常有限的UI选项。

链接

Rubrail链接到私有苹果框架DFRFoundation.framework。这通过在build.rs中添加私有框架路径来处理。使用Rubrail的应用程序不需要自己链接到它,但应该意识到存在这样的依赖。

链接需要一个足够高的XCode版本,以支持触摸条和私有框架。唯一测试过的XCode版本是8.3。使用Rubrail的应用程序必须使用足够新的XCode版本进行构建。如果使用Travis-CI,这意味着在您的.travis.yml中添加类似这样的行

osx_image:xcode8.3

依赖项