最近不知道怎么回事,明明没做什么当前窗口就失去焦点了,比如打字打一半发现文字不上屏了,才发现左上角三个圆点灰掉了,戴着耳机的时候就会听到「滴滴滴滴」的提示音,不得不鼠标点一点重新聚焦,非常烦躁。

我的系统版本:MacOS 12.5
而且最近没有升级过版本

网上搜了下,发现不止我一个人这种情况,也有人写了脚本来检测(见参考1)

1
2
3
4
5
6
7
8
9
#!/usr/bin/python

from AppKit import NSWorkspace
import time
t = range(1,100)
for i in t:
time.sleep(3)
activeAppName = NSWorkspace.sharedWorkspace().activeApplication()['NSApplicationName']
print(activeAppName)

但是运行报错,提示 ModuleNotFoundError: No module named 'AppKit'

明明也安装了 AppKit

1
2
3
4
5
6
7
8
9
10
11
12
13
┌─[<redacted>@MacBook-Pro] - [/usr/local/lib/python3.11/site-packages/appkit] - [Sat Jul 01, 22:54]
└─[$] <> ll
total 3232
-rwxr-xr-x 1 <redacted> staff 620K Jul 1 22:48 _AppKit.cpython-311-darwin.so
-rw-r--r-- 1 <redacted> staff 5.0K Jul 1 22:48 __init__.py
drwxr-xr-x 7 <redacted> staff 224B Jul 1 22:48 __pycache__
-rwxr-xr-x 1 <redacted> staff 114K Jul 1 22:48 _inlines.cpython-311-darwin.so
-rw-r--r-- 1 <redacted> staff 851K Jul 1 22:48 _metadata.py
-rw-r--r-- 1 <redacted> staff 650B Jul 1 22:48 _nsapp.py
drwxr-xr-x 9 <redacted> staff 288B Jul 1 02:36 api
-rw-r--r-- 1 <redacted> staff 3.6K Jul 1 02:36 app.py
-rw-r--r-- 1 <redacted> staff 4.8K Jul 1 02:36 app.pyc
-rw-r--r-- 1 <redacted> staff 1.3K Jul 1 02:36 test_app.py

项目主页:https://github.com/TinKurbatoff/appkit

后来在参考2 看到,这是个李鬼

解决方法:

卸载 AppKit,安装 pyobjc

python3 的环境处理如下

1
2
python3 -m pip uninstall appkit
python3 -m pip install --upgrade --force-reinstall PyObjC PyObjC-core

然后运行上面的程序,找到了元凶,竟然是

1
iShotHelper

这个可恶的程序,困扰了我一周!!!

参考:

  1. https://blog.2022gogogo.top/2019/10/15/macos-lost-focus/
  2. https://stackoverflow.com/questions/53808723/importerror-no-module-named-appkit-after-installing-appkit-and-pyobjc