AppKit 应用该如何监测系统 GateKeeper 需要向用户请求某本地 URL 的访问权限?
我是威注音输入法的作者。威注音输入法到 3.5.3 版为止允许用户直接指定 iCloud Drive 目录下的某个目录、作为输入法自订辞典(几个 txt 文件)的目录。
但,如果这个用户就这样将系统升级到 macOS 14 的话,输入法会被系统提示「是否允许该输入法 app 访问您的 iCloud Drive 资料夹」。问题是这个「由输入法触发的」系统提示是在 main thread 上的,直接会让整个桌面失去响应(鼠标指针能移动,但整个桌面冻结+风火轮至少得有三四十秒,性急的用户肯定会强行断电重新开机)。
所以我想知道该怎样检测 app 是否需要向用户请求这种权限。如果是的话,我会让这个输入法直接用 Finder 打开 iCloud 的辞典目录、且紧接着强制将输入法辞典目录改为自身的沙盒内的目录,以规避这个用户体验危机。这样一来,在 macOS 14 系统下,当用户自己亲自再将辞典目录改到 iCloud Drive 目录下之后,就会被系统记住是用户的主动行为设定,理论上就不会触发该警告。
P.S.:
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.