← 文章列表

輸入法在選單裡變灰、打不出中文?八成是某個程式忘了關防側錄

只有第三方輸入法變灰、Apple 內建的正常,那就是 macOS 的 Secure Input 被卡住了。這篇說明怎麼確認、怎麼當場救回來,以及為什麼慣犯多半是你的密碼管理程式。

你點開右上角的輸入法選單,想切回中文,發現它是灰的,點不動。

先做一件事確認:看看繁體注音、ABC 這些 Apple 內建的輸入法是不是正常。如果內建的都能選,只有第三方的變灰,那就是這篇要講的問題。跟你裝的是哪一套輸入法沒有關係,重新安裝也不會有用。

先救回來

不用登出,多數情況這三步就解決:

  1. Ctrl + Cmd + Q 鎖定螢幕
  2. 等 3 到 5 秒(這步別省,要讓系統完整進入鎖定狀態)
  3. 正常解鎖

還是灰的,就讓 Mac 完整睡眠一次(按電源鍵或闔上螢幕)約五秒再喚醒。都不行才需要登出再登入 —— 那一定有效,因為整個登入階段會重建。

到底發生了什麼

macOS 有一個防側錄機制叫 Secure Input。任何程式在你點進密碼欄位的時候都可以啟動它,系統的鎖定畫面也會用。

它一開著,macOS 就會停用所有第三方輸入法。這是刻意的:輸入法看得到你按的每一顆鍵,所以在你打密碼的那幾秒鐘,系統不讓任何第三方程式站在鍵盤和文字之間。

問題出在關的時候。程式本來應該在你離開密碼欄位時把這個旗標關掉,但有些程式忘了關,有些關到一半自己結束了,旗標就留在那裡沒放。系統不知道那個密碼欄位早就消失了,它只看到旗標還開著,於是第三方輸入法一直被停用。

這個鎖不是輸入法上的,輸入法也無權解除。 一套能自己繞過 Secure Input 的輸入法,本身就是個側錄器 —— 那正是這個機制要防的東西。所以任何輸入法遇到這件事都只能等旗標被釋放,差別只在有沒有告訴你發生什麼事。

慣犯是密碼管理程式

會反覆發生的話,先查你的密碼管理程式

1Password 有官方已確認的問題會錯誤地啟用 Secure Input 不放,最常見的觸發是睡眠或鎖定之後它自動上鎖。

解法實測有效,而且不用登出:點選單列的 1Password 圖示 → 結束 1Password

只關視窗沒有用,它會繼續常駐在選單列裡,旗標也就繼續被它抓著。真的結束之後等幾秒,輸入法就會恢復;只要不重開它,就不會再變灰。想繼續用的話請更新到最新版,官方已經在修。其他密碼管理程式同理。

一個會讓你抓錯人的陷阱

如果你查過「誰持有 Secure Input」,很可能查到的是 loginwindow,或某個看起來完全無辜的程式。

那多半不是真兇。這個旗標被卡住的時候,系統記錄的持有者常常是錯的,因為真正啟動它的程式可能已經結束了,或者旗標在轉手過程中被記到別人頭上。照著查到的名字去關那個程式,通常沒有效果 —— 但這不代表你判斷錯了方向,只代表這條線索本身不可靠。

所以順序反過來比較快:先關密碼管理程式,再想別的。

如果一天發生好幾次

有兩個系統設定是常見成因,可以關掉試試:

另外也可以留意那些會全域監聽鍵盤的常駐工具:語音輸入、快捷鍵啟動器、部分滑鼠驅動程式。暫時結束它們,觀察還會不會發生。

ZingIME 會直接告訴你

這件事最惱人的地方不是它發生,是你完全不知道發生了什麼 —— 輸入法就這樣不能用了,而且看起來像是它壞了。

所以 ZingIME 會盯著這個旗標。變灰超過一分鐘,它會跳出提示,指出是哪個程式卡住的、以及那個情況該怎麼處理(持有者已經結束、是 loginwindow、或是某個還在跑的程式,三種給的建議不一樣)。

不需要這個提示的話,偏好設定 → 進階 →「防側錄模式」可以關掉。要回報問題的時候,「產生系統報告」也會記下當下的 Secure Input 狀態,附上去可以省掉很多來回。

最後

這是那種不是你的錯、也不是輸入法的錯的問題。某個程式在你沒看到的地方忘了收拾,而代價由完全無關的另一個東西承受。

至少現在你知道該按哪三個鍵。