说到底是一次按键
记下你复制过什么,用不着这个权限;把某一条放回剪贴板,也用不着。要把它贴进你刚才打字的那个 App,就不一样了:剪贴板工具得替你在那个 App 里按一下 ⌘V,而 macOS 只在你同意之后,才让一个 App 往别的 App 里发按键。这个开关在 系统设置 › 隐私与安全性 › 辅助功能。
第一次在没有权限的情况下选了一条,SSPaste 会问一句要不要直接粘贴。点那个按钮,会打开系统设置里的这张列表,旁边有一条浮动条,把里面的 SSPaste 拖进列表就行。
别的剪贴板工具给的理由也一样。Paste 的帮助页面说,它只向最前面的 App 发送 ⌘V,用 Paste Stack 时再加一个 ⌘C。Maccy 的常见问题里,“选了一条却没有粘贴”的答案,指向的也是这张列表。
Apple 说这个开关意味着什么
Apple 的《允许无障碍 App 访问你的 Mac》写得很直接:“允许 App 访问 Mac 即允许其访问联系人、日历和其他信息”,还提醒“务必谨慎,仅批准你知道且信任的 App 访问”。
App Store 版拿到的比这少
从 Mac App Store 装的 SSPaste 运行在 Apple 的 App 沙盒里。Apple 的一位工程师在开发者论坛上说得很明白:一般来说,App 沙盒不允许使用辅助功能的接口。沙盒里的 App 能申请的是窄得多的一项:发送键盘事件。同一位工程师解释,这项权限在界面上显示在 系统设置 › 隐私与安全性 › 辅助功能 里,但不是完整的辅助功能权限,只限于发送事件。
SSPaste 申请的就是这一项。系统设置里的开关看上去和别的 App 没有两样;SSPaste 的代码里,也没有任何读取别的 App 窗口内容的调用。它拿这个权限做的事,都在下一节。
SSPaste 发出去的是什么
一次 ⌘V,在你选了某一条之后。SSPaste 先把内容放上剪贴板,收起面板,等你原来用的 App 回到最前面,再按 ⌘V。那个 App 一秒之内没回到前面,就什么都不发:托盘重新打开,告诉你内容在剪贴板里。万一这个 ⌘V 落回了 SSPaste 自己身上,它会先把自己藏起来,再补发一次,只补这一次。
它不看你打字。它知道你按了 ⇧⌘V,靠的是向 macOS 登记了这一组键,和所有带全局快捷键的 App 一样:系统只在这组键被按下时告诉它,别的键一概不说。面板开着的时候,它还会留意面板外面有没有点鼠标,好把自己收起来。这件事 macOS 不要求权限,SSPaste 也只用到“点了一下”这个事实。
不开也能用
没有这个权限,SSPaste 照样能用:选一条就复制好,提示你自己按 ⌘V。不想再被问到,可以在 设置 › 通用 › 粘贴项目 里关掉“到当前活动应用”。系统设置里的开关也随时可以关掉。
哪些只能靠信任
SSPaste 不开源,它的代码做了什么,你能凭的是我的话和这一页。你自己看得到的是结果:开关一关,SSPaste 就完全没法往别的 App 里粘贴。隐私政策里列了 SSPaste 仅有的两种联网情况,都和这个权限无关。