進階鍵盤佈局功能呢? - vChewing/vChewing-macOS GitHub Wiki

威注音 1.4.4 版移除了這個功能。原因如下:

包括輸入法的 NSMenu 選單、以及 Dock 的選單在內,有些 App 的 NSMenu 不會在消失的那一刻重設當前鍵盤的修飾鍵狀態。而 NSMenu 超高的權限會攔截一切鍵盤修飾鍵切換訊號、讓輸入法無法得知這個狀態切換。這會妨礙到任何需要依賴修飾鍵狀態來切換鍵盤佈局的功能。

作為上游專案的小麥注音到 2.1.x 為止,InputMethodController 是用 Objective-C 寫的,可以在除了上述情形以外正常使用該功能。然而,小麥注音 2.2.x 的 InputMethodController 是用 Swift 寫的,很多之前 Objective-C 的處理邏輯照搬過去不見得生效,所以小麥注音 2.2.x 才會出現「只有藉由 defaults write 啟用 Shift 進階鍵盤佈局功能了、才會在使用 Shift 鍵時生效」「對其餘修飾鍵不生效」的情況。

至於小麥注音接下來要拿這個功能怎麼辦,與威注音無關。或許,將相關的條件判斷單獨交給一個 Objective-C 型別來處理的話,理論上也是可行的。然而,既然有上述 NSMenu 權限的原因,那麼這個功能就已經絕無可靠之可能。於是威注音只能移除這個功能。

⚠️ **GitHub.com Fallback** ⚠️