我想要輸入UITextView
中的當前輸入單詞。可以在這裏找到一個獲得完整類型單詞的方法UITEXTVIEW: Get the recent word typed in uitextview,但是,我希望在輸入時輸入該單詞(不管它在哪裏輸入,UITextView
的開頭,中間和結尾)。在UITextView中獲取當前輸入的單詞
我猜什麼定義正在鍵入一個單詞是一個空白字符後面的字母數字字符,或者如果當前位置(以某種方式與range.location
弄清楚)是UITextView
年初那麼無論採取後續行動應被視爲字作爲好。當另一個空格字符出現時,一個單詞完成輸入。
我試着用:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text`
但我有一個問題,找到正確的範圍內。
總之:我需要在UITextView
找到子字符串,其中子字符串是當前輸入的字。
編輯:因爲問題出現了。我使用NSLayoutManager
並將NSTextContainer
綁定到它,然後將其作爲layoutManager傳遞到NSTextStorage
。
EDIT2:與(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
的主要問題是,range.location
是不一樣的指示燈,但總是1以下。如果光標位於位置1,輸入一個字母后,range.location
將返回0.任何方式?此外,UITextView
的text
屬性似乎也被關閉了1。當文本是foobar
和我輸出UITextView.text
時,我改爲fooba
。因此range.location+1
返回異常Range {0, 1} out of bounds; string length 0'
EDIT3: 也許更容易讓我與NSTextStorage
代替UITextView
通緝的結果?
' - (BOOL)的TextView :(UITextView *)textView shouldChangeTextInRange:(NSRange)範圍replacementText:(NSString *)text'方法將一次給你單個字符的範圍,你必須一個接一個地做出最新的單詞 – 2014-12-09 13:13:03
你想在哪裏顯示它?在標籤或?這將幫助我 – 2014-12-09 13:33:05
你應該看看'UITextInputProtocol'。如果您在實施代碼時遇到任何問題,請告訴我。 – n00bProgrammer 2014-12-09 13:55:07