2011-01-25 63 views
1

我建立一個虛擬鍵盤的一個UITextView。一切正常,我可以顯示鍵盤和刪除鍵盤以及顯示擊鍵。我使用的是「stringByReplacingCharactersInRange:withString」的方法來放置新的鍵盤進入文本視圖。這可以工作,但由於它每次都會替換字符串,所以入口點會移到字符串的末尾。這一切都有道理,但不是很有用。我可以在我的代碼做檢查,解決這個問題,但有可能是更好的東西......如何推動鍵值到的UITextView從自定義鍵盤的iOS

所以我的問題是這樣的;有沒有辦法直接將新密鑰推送到UITextView,而無需手動修改UITextView的文本屬性的字符串?該手冊規定,我將不得不管理目標/行動,不過我在想,如果我錯過了一個動作調用。看來,蘋果的默認鍵盤必須擁有衝壓擊鍵到對象不檢查,我將不得不做,使打字流暢的明顯數量的光滑的方式。

任何幫助將不勝感激。 謝謝, 羅布

回答

1

好吧,我沒有得到任何迴應。所以我想出了一個辦法來做到這一點,所以它是合理和簡單的。這是跟蹤選定範圍的問題。所以當我希望退格時,我使用這種技術。

NSRange currentRange = self.myTextView.selectedRange; 
if (currentRange.length == 0) { 
    currentRange.location--; 
    currentRange.length++; 
} 
self.myTextView.text = [self.myTextView.text stringByReplacingCharactersInRange:currentRange withString:[NSString string]]; 
currentRange.length = 0; 
self.myTextView.selectedRange = currentRange; 

如果我需要鍵入一個字符,這個作品。

NSRange currentRange = self.myTextView.selectedRange; 
self.myTextView.text = [self.myTextView.text stringByReplacingCharactersInRange:currentRange withString:someCharacter]; 
currentRange.location++; 
currentRange.length = 0; 
self.myTextView.selectedRange = currentRange; 

如果有人有更好的方法,我想聽聽它。

謝謝,
Rob