在 macOS Sierra 中使用大写锁定切换输入源时应用程序崩溃

cod*_*nd1 5 macos xcode swift3 macos-sierra

macOS Sierra 有一项新功能,可以使用大写锁定键切换输入源(键盘布局)。(见截图)

在此输入图像描述

当此选项处于活动状态时,我的应用程序在按 Caps Lock 时崩溃。

除了 之外,我没有得到任何有意义的堆栈跟踪main。仅Message from debugger: Terminated due to signal 9被报道。显然这是内存违规。

这在其他应用程序中不会发生。但是当切换输入源时,我在控制台中收到以下错误:

KIM_Extension   Current input mode is nil
Run Code Online (Sandbox Code Playgroud)

我尝试删除并重新添加输入源,但这没有效果。

另外,我必须注意,这个问题仅在我将应用程序转换为 Swift 3 后才出现

有人对如何处理大写锁定事件有更深入的了解吗?有没有办法在将事件发送到应用程序/系统之前对其进行错误检查?

更新: 我认为重要的是要提到从菜单栏切换输入源或使用常规键盘快捷键效果很好。所以问题是大写锁定切换特有的。