macOS触控板 “放大或缩小” 失灵/无反应/失效的临时解决方法
尝试帮朋友解决过这个bug,也听说了很多次了,但我自己的电脑没试出来过。
建议出现这个问题的小伙伴到 Feedback Assistant (apple.com) 此处提交bug,促使Apple尽快解决。
目前看,只有靠经验解决,能搜索到的解决方法有:
Pinch zoom on MacBook Pro unreliable with…
Trackpad gestures stop working randomly a…
总结为:
- 等待 会自行恢复
- 从屏幕左上角点击苹果图标点击睡眠后,再开机,能够临时解决此bug
- 当使用空格键快速预览图片时产生此bug可以通过shell执行: killall Finder临时解决
- 当使用软件如figma、sketch、浏览器等等遇到此bug,可以通过shell执行:killall Dock临时解决
- 当遇到此类bug,可以在系统偏好设置中关闭“放大和缩小”,再重新勾选,可以临时解决
以上killall Dock和开关“放大和缩小”对我朋友是有效果的。为了节省他的时间,我给他实现了一个简单的脚本,因为对一般用户来说“自动操作”没有“快捷方式”来得简单方便,所以本次我是在快捷方式上实现的脚本操作,分别针对macOS 12 和macOS 13 。
一,针对macOS 12系统的快捷方式设置方法:
1,打开快捷指令点击添加
2,随意命名一个名称,点击到详细信息勾选“在菜单栏中固定”,当然你也可以选择定义“键盘快捷键”,按你个人喜好。
3,在操作库页面,选择“脚本”,找到“运行Shell脚本”并双击,左栏shell部分选择“bash”(默认用zsh也行,只是当时截图顺手标记了)。
4,将以下代码,复制粘贴到窗口中
#!/bin/bash
killall Finder #kill Finder如不需要可以删除
killall Dock #kill Dock 如不需要可以删除
#开始---模拟实现关开一次放大和缩小 如不需要可以删除
osascript <<EOD
tell application "System Preferences"
if it is running then
delay 0.6
end if
end tell
tell application "System Preferences"
reveal anchor "trackpadTab" of pane id "com.apple.preference.trackpad"
end tell
tell application "System Events" to tell process "System Preferences"
click radio button 2 of tab group 1 of window 1
click checkbox 2 of tab group 1 of window 1
click checkbox 2 of tab group 1 of window 1
end tell
quit application "System Preferences"
#结束---模拟实现关开一次放大和缩小 如不需要可以删除
5,如下图所示,打开“安全性与隐私”如下图所示勾选“siriactionsd”
6,在顶部菜单栏可以找到刚刚定义的快捷方式,点击一次会自动执行:
- killall Finder
- killall Dock
- 关开一次放大和缩小
如有不需要执行的动作可以直接在代码中删除此部分即可
7,可以按照个人习惯定义其他快捷方式。
8,注意,默认需要把“放大或缩小”设置为开启状态,脚本并不会去判断“放大或缩小”的状态,只是简单的模拟点击了两次checkbox。
二,针对macOS 13的快捷方式设置方法
macOS 13中applescript有不少问题,并且『系统设置』也从重新开发过了,路径于UI元素变化很大,只能想办法规避问题实现模拟点击,效果没有12的好。
将第一部分第4节的代码内容替换成以下即可,其他不变。
#!/bin/bash
killall Finder #kill Finder如不需要可以删除
killall Dock #kill Dock 如不需要可以删除
#开始---点击两次方法和缩小,模拟实现关开 两次放大和缩小 如不需要可以删除
osascript <<EOD
use AppleScript version "2.8"
use framework "Foundation"
tell application "System Settings"
if it is running then
delay 0.6
end if
end tell
current application's NSWorkspace's sharedWorkspace()'s openURL:(current application's NSURL's URLWithString:"x-apple.systempreferences:com.apple.preference.trackpad")
tell application "System Settings"
activate
delay 1
end tell
tell application "System Events"
tell tab group 1 of group 1 of group 2 of splitter group 1 of group 1 of window of application process "System Settings"
click radio button 2
delay 1
end tell
tell group 1 of scroll area 1 of group of group 2 of splitter group 1 of group 1 of window of application process "System Settings"
click checkbox "放大或缩小"
delay 0.5
click checkbox "放大或缩小"