輸入法在選單裡變灰、選不到
macOS 防側錄模式(Secure Input)卡住時,所有第三方輸入法都會被停用。怎麼認、怎麼解、怎麼避免。
如果晶晶輸入法在輸入來源選單裡是灰色的、點不動, 但繁體注音和 ABC 都正常,那不是晶晶輸入法壞掉 —— 是 macOS 的防側錄機制 Secure Input 被某個程式卡住了。
怎麼確認是這個問題
三個特徵同時出現,就幾乎可以確定:
- 晶晶輸入法在選單裡是灰的,點了沒反應
- 繁體注音、ABC 都正常 —— Apple 內建的輸入法都不受影響, 有裝日文、拼音等其他內建輸入法的話也一樣正常
- 重新安裝、重新加入輸入法都沒有用
最後一點是最好的判準。如果重裝能修好,那就是別的問題; 重裝完全無效,反而是這個問題的典型特徵。
同一時間如果你也發現 Alfred、Raycast、TextExpander 之類的工具失效, 那更確定了 —— 它們跟輸入法一樣要接收全域鍵盤輸入,會被一起停用。
為什麼會這樣
macOS 有個保護機制叫 Secure Input(防側錄輸入)。 任何程式在你點進密碼欄位時都可以啟動它,鎖定畫面也會用。 它一開著,系統就停用所有第三方輸入法, 確保你打的密碼不會被任何第三方程式看到。
程式本來應該在你離開密碼欄位時關掉它。問題出在有些程式忘了關, 有些關到一半就結束了,旗標就留在系統裡沒有釋放。 這時候輸入法就一直是灰的。
晶晶輸入法無法自行解除這個狀態。 鎖不是我們上的,而能夠繞過 Secure Input 的輸入法,本身就是一個側錄器 —— 這個邊界是 macOS 刻意設計的,所有第三方輸入法一視同仁。 我們能做的是告訴你是誰卡住的,以及怎麼解開。
重要:系統回報的程式名稱可能是錯的。 macOS 有時會把持有者記成
loginwindow或其他無辜的程式, 真正的來源另有其人。所以如果你照著回報的名字去關那個程式卻沒有效, 不代表你判斷錯了 —— 往下看第一項。
解法(依序試)
1. 先查密碼管理程式(尤其是 1Password)
1Password 有一個官方已確認的問題,會在某些情況下錯誤地啟用 Secure Input 而不釋放 —— 最典型的是 Mac 睡眠或鎖定時 1Password 自動上鎖, 醒來後那個解鎖欄位仍然抓著不放。1Password 官方的說法是: 「開發團隊正在追蹤 1Password for Mac 在某些情況下會錯誤啟用 Secure Input 的問題。」
這個問題最難查的地方,是系統會把它記在別的程式頭上。
發生時 ioreg 常常回報成 loginwindow 或某個剛好在前景的程式
(例如瀏覽器),於是你去關那個無辜的程式,當然沒有效。
解法(實測有效,不用登出、不用重開機):
- 點選單列的 1Password 圖示 → 「結束 1Password」 (只關掉視窗沒有用 —— 1Password 會繼續常駐在選單列, 必須完全退出)
- 等幾秒,輸入法就會亮起來,可以正常使用
- 之後只要不重新開啟 1Password,就不會再變灰
這是實際遇到的使用者一路排查後確認的結果 —— 過程中 Chrome、鎖定畫面、 重新登入都被排除了,唯一有效的就是完全退出 1Password。
要繼續使用 1Password 的話,請更新到最新版(官方已在測試修正)。 其他密碼管理程式(LastPass、Proton Pass、Bitwarden、Enpass)也可能有類似狀況, 處理方式相同。
2. 找找看有沒有在等你輸入密碼的視窗
最常見、也最容易忽略的原因:某個地方正停在密碼欄位上等你,而你沒注意到。 檢查有沒有躲在背景的密碼提示、通行密鑰(passkey)確認、驗證碼輸入框, 或是密碼管理程式的主密碼解鎖畫面。把它填完或關掉就解決了。
常見的來源:
- 瀏覽器停在某個登入頁面的密碼欄位
- 系統跳出的鑰匙圈存取、Apple ID 密碼要求
3. 檢查終端機的「安全鍵盤輸入」
終端機(Terminal.app)選單有一個 「終端機 → 安全鍵盤輸入」 選項。 這是常駐開關,不是暫時狀態 —— 一旦打開, 只要終端機還開著就一直啟用 Secure Input,很多人開了之後完全忘記。
打開終端機,看選單裡那一項有沒有打勾。有的話取消勾選,輸入法立刻恢復。
4. 鎖定螢幕再解鎖
如果找不到是哪個程式,這招通常最快,而且不用關掉任何工作:
- 按 Ctrl + Cmd + Q 鎖定螢幕
- 等 3 到 5 秒 —— 這步別省,要讓系統完整進入鎖定狀態
- 解鎖。如果可以,用輸入密碼的方式解鎖,先不要用 Touch ID
解鎖會讓系統重新走一次密碼欄位的完整流程,通常會把殘留的旗標清掉。
5. 讓 Mac 完整睡眠一次
鎖定沒效的話,按電源鍵或闔上螢幕讓 Mac 進入睡眠, 等 5 秒左右再喚醒解鎖。這會重置系統底層的視窗伺服器狀態。
6. 登出再登入
前面都無效才需要這步,但它一定有效 —— 整個登入階段會重建,所有殘留的旗標都會歸零。
如果連登出都無效(很罕見),改成重新開機, 並在關機確認視窗把「重新登入時重新打開視窗」取消勾選。 否則造成問題的程式會跟著一起回來,馬上又把鎖抓走。
反覆發生時的預防設定
如果一天要遇到好幾次,通常是某個系統功能或常駐程式在反覆搶奪安全焦點。 以下兩項是最常見的成因,關掉不影響一般使用:
關閉「自動切換到文件的輸入方式」
系統設定 → 鍵盤 → 文字輸入 → 按「編輯」, 把「自動切換到文件的輸入方式」關掉。
這個功能會在密碼視窗跳出時自動切換輸入來源,
而密碼欄位同時正在啟動 Secure Input —— 兩件事撞在一起,
很容易讓系統的鎖定畫面程式(loginwindow)卡在中間狀態沒有釋放。
對輸入法使用者來說,這一項的嫌疑最大。
隱藏「快速使用者切換」
如果你沒有在用多個使用者帳號,到系統設定 → 控制中心
把「快速使用者切換」設為不顯示。這個常駐服務也是 loginwindow
忘記釋放的常見來源。
留意會全域監聽鍵盤的常駐工具
語音輸入工具、快捷鍵啟動器、部分滑鼠與鍵盤驅動程式(例如 Logi Options+) 會在系統喚醒時搶奪輸入焦點。如果上面都試過還是反覆發生, 把這類工具暫時完全結束,觀察半天看看。
晶晶輸入法會主動告訴你
輸入法變灰超過一分鐘時,晶晶輸入法會跳出提示, 指名是哪個程式卡住的,並針對當下的狀況給出對應的解法。 你不需要自己查。
三種狀況的提示內容不同:
- 某個程式正持有 —— 告訴你系統回報的程式名稱, 並提醒你這個名字有可能是錯的
- 程式已經結束但旗標沒放 —— 這種情況關掉任何程式都沒用,直接請你登出再登入
- 回報成鎖定畫面 —— 提示會先請你檢查密碼管理程式, 因為這個回報結果通常不能照字面相信(見上面第 1 項)
這個提示可以在 偏好設定 → 進階 → 防側錄模式 關閉。
要回報問題時,請先到偏好設定 → 進階 → 產生系統報告。 報告會記錄當下的 Secure Input 狀態與持有者,附上它可以省下大量來回確認。 這個狀態在「活動監視器」裡看不到,而且一登出就消失 —— 而登出正是大家會第一個嘗試的動作。
自己查是誰卡住的
想自己確認的話,打開終端機貼上這行:
ioreg -l -d 1 -k IOConsoleUsers | tr ',' '\n' | grep -i SecureInputPID
沒有任何輸出,代表目前沒有人持有,問題出在別的地方。
有輸出的話會看到類似 "kCGSSessionSecureInputPID"=1234,
那個數字就是持有者的行程編號。再用這行查是哪個程式:
ps -p 1234 -o pid=,comm=
把 1234 換成上面看到的數字。如果這行印不出東西,
代表那個程式已經結束了、旗標卻留著 —— 這種情況只能登出再登入。
再提醒一次:查到的名字不一定是真正的來源。
查出 loginwindow 或某個瀏覽器時尤其要留意,
先回頭檢查密碼管理程式再說。