TL; DR:修复OSX在terminal上运行:
defaults write -g ApplePressAndHoldEnabled -bool false
详细信息:我在Android Studio的OSX以及所有其他基于Intellij的应用程序(AppCode,WebStorm,IntelliJ Idea等)上都遇到了这个问题:一段时间以后,编辑器失去了焦点,直到切换到另一个编辑器窗口或点击状态栏。 通常每天发生几次,虽然我是IntelliJ堆栈的忠实粉丝,但是非常烦人。 这就是为什么我决定提供一个详细的解释如何摆脱这个问题,并希望我的修复可能有助于某人,因为我无法find一个明确的解决scheme。
正如我在网上find的潜在解决scheme是使用Oracle JDK作为IDE启动JDK,但它有字体的问题,在我的情况下是不能接受的。
使用https://intellij-support.jetbrains.com/hc/articles/206544879中的说明我试着用最新的IntelliJ JDK(112 b801)解决这个问题: https ://bintray.com/jetbrains /intellij-jdk/download_file?file_path=jbsdk8u112b801_osx_x64.tar.gz
要设置它,只需使用“帮助”>“查找操作…”
并select从上述位置下载的JDK
我觉得问题变得不那么频繁了,但是至less每天至less还会发生一次。
一段时间后,下面提到的链接启发我尝试尝试使用系统OSX设置,在按住一个按键之后阻止键盘input 。 非常感谢Jonathan Ruckwood在这里的观察:
默认情况下,按住OSX键后可以防止重复按键(详情请参阅: https : //discussions.apple.com/thread/5038771?tstart=0 )。 你可以在任何文本编辑器(除了Emacs,terminal,也可能是其他人)轻松看到它时,按任何字母键不会产生几个字符相反的箭头键和其他一些可以重复的键。 这种行为可以改变。 我正在考虑在系统和IntelliJ IDE之间的键盘阻塞过程中一些潜在的干扰,并尝试以下命令来防止键重复块(它可以随时更改为真):
defaults write -g ApplePressAndHoldEnabled -bool false
应用这个命令后,Android Studio或其他IntelliJ IDE应该重新启动。 在我每天有几次这样的键盘阻塞错误之前,现在3天之后,没有任何这种麻烦的迹象。 手指交叉…无论如何,我认为现在比以前好多了。 我做的一个额外的configuration更改是使用自定义启动JDK(它不能独立工作,但可能它与ApplePressAndHoldEnabled参数一起工作)。
这样说我相信这是一个错误,并且必须修复才能在OSX上工作,而不需要修改默认设置和引导JDK。 这样请在这里投票修正: