mac 使用时窗口经常无故自己切换

2019-12-06 23:11:47 +08:00
 dalang
目前使用的是 2018 13 寸 mbp,最近使用的时候常常窗口会无故自己切换。有时是手放在键盘上没动,有时手都已经离开键盘,今天测了下外接键盘也发生了。
特意安装了 keycast 记录键盘按键记录,并没发现窗口被切换时有键盘触发的操作。

现在用 mac 很难受,莫名发生窗口切换后,就得自己按 cmd+tab,很影响工作。虽然严格上说发生的概率不能算高,真的很烦人。尤其是找不到问题,感觉陷入玄学了
4551 次点击
所在节点    MacBook Pro
13 条回复
wclebb
2019-12-06 23:34:21 +08:00
邮件?
uhian
2019-12-07 00:03:44 +08:00
窗口切换指的是切换到别的 app 还是切换到主窗口?如果是主窗口,会不会有什么隐藏的 app 在主窗口有消息。比如有的 app 有新版本,你在别的窗口正忙,他会跳出来导致回到主窗口。不知道我说明白没。。。。。。
dalang
2019-12-07 09:09:27 +08:00
@uhian 切换到别的 app,行为上就跟自己按了一次的 cmd+tab 一样
starrystarry
2019-12-07 09:17:04 +08:00
很久之前似乎遇到过类似的问题,当时用了一段代码查找到了元凶,卸载之后就好了。只想到这些,细节全忘了……
dalang
2019-12-07 11:53:28 +08:00
@starrystarry #4 如果是软件层的问题,至少感觉比应用故障要好一点。
starrystarry
2019-12-07 11:55:18 +08:00
@dalang 搜「 Mac 失去焦点」试试
leeum
2019-12-08 00:09:17 +08:00
10.14 的时候出现相同问题,升级到 10.15 就没再出现过
dalang
2019-12-09 12:06:52 +08:00
@leeum #7 我从 high siera 升到 catalina 后问题依旧。
dalang
2019-12-09 12:07:26 +08:00
@starrystarry #6 脚本用起来了,看看能不能起作用。
feellucky
2020-05-07 23:58:20 +08:00
我今天遇到两次,在没有操作键鼠的情况下自己出现了切换窗口的浮层(似乎并没有真的切换)。一开始以为是 mac 被人远程控制了,因为前几天打开了远程管理的共享,但是关掉共享之后又出现一次。有搜到这个帖: https://discussionschinese.apple.com/thread/250914911,没有解决问题。

看了下拥有辅助功能权限的应用,嫌疑最大的是 karabiner-element 、logi option 、magnet 和 mos 。
feellucky
2020-05-07 23:59:41 +08:00
mac mini 2018 + 蓝牙键鼠、catalina 10.15.4
dalang
2020-05-09 10:23:21 +08:00
我后来发现确实是 chrome 的原因,解决方法是下载完重装
cyongfrank
2023-05-11 17:03:04 +08:00
> [How do I tell which app stole my focus in OS X?]( https://superuser.com/questions/734007/how-do-i-tell-which-app-stole-my-focus-in-os-x)

```python
#!/usr/bin/python

try:
from AppKit import NSWorkspace
except ImportError:
print("Can't import AppKit -- try `pip install PyObjC`")
print("(see instructions for running in a venv with PyObjC)")
exit(1)

from datetime import datetime
from time import sleep

last_active_name = None
while True:
active_app = NSWorkspace.sharedWorkspace().activeApplication()
if active_app['NSApplicationName'] != last_active_name:
last_active_name = active_app['NSApplicationName']
print('%s: %s [%s]' % (
datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
active_app['NSApplicationName'],
active_app['NSApplicationPath']
))
sleep(1)
```

1. Create a directory, and save the script above into it as "focus-stealer.py"
2. In a terminal in that directory enter these commands:

```sh
/usr/bin/python3 -m venv venv
./venv/bin/python -m pip install PyObjC
```

(This creates a new, isolated Python virtual environment, just for this script, and installs PyObjC into it. This avoids modifying your system Python installation or needing to use sudo.)

3. Now you can run the script. In a terminal in that same directory run:

```sh
./venv/bin/python ./focus-stealer.py
```

(In the future, you can skip directly to this step—no need to reinstall things.)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/626682

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX