2017-06-06 59 views
1

我想要獲取當前在UITextField中輸入的單詞。獲取正在輸入的最後一個單詞

案例1:

你好

如果光標是第二Ë(意爲ê後,剛剛被鍵入,那麼這個詞應退還

案例2:

用戶從HELLO(光標是第二後),那麼這個詞地獄應返回

我有這樣的代碼,但它返回的的UITextField所有文字刪除Ø

postView.textView.delegate = self

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { 
    let text = (textView.text as NSString?)?.replacingCharacters(in: range, with: text) 

    return true 
} 

更新1: 我已經經歷了這些類似的問題了,但這些並沒有爲我工作。

Get currently typed word in UITextView

Get word that is being typed

+0

你想要一個單詞或有效的單詞被返回。據我所知,你想從一個句子中得到一個有效的單詞。例如「wertuwerg hjfhdsf」這些詞不應該返回,但「你好」應該返回? – ChanWarde

+0

@ChanWarde我需要這個詞,無論它是否有效。但它必須是被鍵入的單詞(最近的),**不是**這個單詞是UITextView中的最後一個單詞。 – MJB

+0

let newString = NSString(format:「%@」,textView.text).replacingCharacters(in:range,with:text)as NSString let textNew = newString.substring(to:range.location).components(separatedBy:「 「).last 嘗試此操作,並將其更新爲其正在輸入的詞,但直到您鍵入。 – ChanWarde

回答

4

與下面的代碼,它在我結束工作的嘗試。

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { 
    let nsString = textView.text as NSString? 
    let newString = nsString?.replacingCharacters(in: range, with: text) 
    let arr = newString?.components(separatedBy: " ") 
    self.lblWord.text = arr?.last 
    return true 
} 
+0

什麼是self.lblWord.text? – MJB

+0

您可以刪除該行。它會給你的字符串最後一個字。這是爲我而測試你... –

+0

在這裏'arr?.last'會返回你最後一個字,你想要的。所以你可以從這裏得到這個詞 –

相關問題