rime / squirrel

【鼠鬚管】Rime for macOS
https://rime.im
GNU General Public License v3.0
4.54k stars 413 forks source link

xcode下的输入法切换问题 #868

Open mykonica opened 2 months ago

mykonica commented 2 months ago

我设置的是Ctrl键切换中英文,输入方法是极点五笔。Xcode内置的快捷键Ctrl+6打开函数列表,我有两个问题: 1、在英文模式下按Ctrl+6,打开了函数列表后输入法自动切换成了中文 2、函数列表窗口打开后,再按Ctrl键无法切换输入法了。 按我的理解,按Ctrl+6不等于单独按Ctrl,不应该触发中英文切换吧。

image
mykonica commented 2 months ago

没想到设置reset=1居然就解决了我的问题。请问有人知道reset起什么作用吗?

image
lotem commented 2 months ago

按Ctrl+6不等于单独按Ctrl,不应该触发中英文切换吧。

我認爲事情是這樣的:

app 優先響應快捷鍵,其次系統讓輸入法接收其他 app 沒有截流的按鍵消息。重點不在這裏。

因爲 app 開了新的窗口,這是一個新的(蘋果輸入框架裏的)客戶端,按照鼠鬚管的實現,會新開一個輸入法會話,置於輸入方案定義的默認狀態,也就是中文狀態。reset 會在開啓新的輸入法會話時,以及切換輸入方案後,重置開關爲數字序號對應的狀態,按照圖中的配置代碼 0 對應「中」,1 對應「A」。

因此按照我的理解,不是按快捷鍵後發生了切換,而是新的窗口中輸入法置爲默認的轉換狀態; 也不是定義了reset 就不切換,而是打開新窗口後將初始狀態置爲關閉中文輸入。

在函數列表窗口中無法用 Control 鍵切換,可能類似已知 BUG:彈出系統對話框中無法用 SHIFT 鍵切換中英文。