2017-06-06 30 views
0

所以我們最近有一個問題,我們的鍵盤擴展在附帶的應用程序中顯示錯誤的建議。我們發現從上下文(super.textDocumentProxy.documentContextBeforeInput)返回的文本都是錯誤的,並且由於它是在蘋果組件中構建的,所以文本插入時必然會出現問題。我們已經實施之後插入文本:爲什麼UITextInput中的InsertText會斷開鍵盤建議?

if (replaceRange.length > 0) { 
     [self.textView.textStorage replaceCharactersInRange:replaceRange withString:selectedWord]; 
     [textView setSelectedRange:NSMakeRange(newLocation, 0)]; //Place cursor after inserted word 
    } else { 
     [self.textView insertText:selectedWord]; 
    } 

將返回類似:

有。 。 。

而真正的文字是這樣的:

它就在那裏。這是一個小測試。測試一切。

回答

0

該問題被發現與insertText顯然它會正確插入文本,但鍵盤上下文將無法讀取插入的文本。現在修復只是用兩個插入(意味着沒有if/else語句):

[self.textView.textStorage replaceCharactersInRange:replaceRange withString:selectedWord]; 
     [textView setSelectedRange:NSMakeRange(newLocation, 0)]; //Place cursor after inserted word 

這解決了這個問題,並已使我們得出結論,按預期insertText不起作用。請注意,如果在文本字段中使用建議,則這只是一個問題。