[功能問題提報] 在組音區有內容時,內文組字區的游標位置不正確。
ShikiSuen opened this issue · comments
先說結論:得修一下 IMEStateData.attributedStringNormal(for:)。本次將使用間接修復法:
/// IMK 有如下限制:
/// 1. 內文組字區要想顯示游標的話,所有下劃線的粗細必須相等。
/// 2. 如果所有線段粗細相等的話,給 client().setMarkedText() 塞入的 selectionRange 的長度必須得是 0。
/// 不然的話,游標會頑固地出現在內文組字區的正前方(文字輸入順序上的前方)。
/// 3. 從 macOS 14 開始,粗細相等的相鄰下劃線會顯示成一整個線段。該行為改變恐怕是 macOS 故意所為。
///
/// 於是乎,此處特地針對 .ofInputtingState 專門將內文組字區的 marker 設定到 cursor 的位置。
/// 這是一招隔山打牛的方法,讓此時的 selectionRange 的長度必定是 0。
Done.