我正在實現使用CoreText並遵循UITextInput
協議的自定義UITextView(基於EGOTextView)。我幾乎一切工作正常(唷!),除了一件煩人的事情。自動更正建議文本是垂直鏡像的,其高亮稍微向右移動。這裏是什麼樣子:「幫助」自定義文本字段 - 鏡像自動更正
在文本字段我輸入「直升機」,它autocorrects到正如你所看到的,自動更正的文本,但不是它的背景,是垂直鏡像的。另外,它橫盤右移約7點。
要解決第二個問題(水平偏移),我已驗證firstRectForRange:
方法返回正確的CGRect
。我以兩種方式做到了這一點。第一個是目視檢查,當我顯示UIMenuController
時,它顯示在正確的位置(它確實)。第二個是圍繞由firstRectForRange:
返回的CGRect
繪製輪廓。這裏有與CGRect
概述相同的文字。
正如你所看到的,正確的區域概述,但自動更正標/高亮顯示不正確。
我很高興分享任何代碼,但這是一個巨大的課程,我現在很難過。任何指針都會被大量讚賞!
編輯:源代碼可在此存儲庫的Experimental分支上找到:github.com/cbrauchli/EGOTextView。
因爲我不知道你是怎麼做的,所以請記住,使用'UIKit',繪圖原點位於左上角(y增加)。但是較低級別的繪圖函數的起點在左下角(y越來越大)。您的解決方案可能是應用(1,-1)的縮放變換來翻轉y軸。 – rmaddy
@rmaddy,謝謝。這絕對是它的樣子,但我無法弄清楚我出錯的地方,以及爲什麼我的代碼甚至會影響自動更正視圖的繪製,而這並不是由我繪製的。我繼續做了github回購,你可以在編輯中看到。 – cbrauchli