我實現了一個與文本字段相關聯的自定義鍵盤,因此當用戶按下刪除按鈕時,我從字符串中刪除最後一個字符,並手動更新當前文本字段文本。如何從NSString中刪除最後一個Unicode符號
NSRange range = NSMakeRange(currentTextFieldString.length-1, 1);
[currentTextFieldString replaceCharactersInRange:range withString:@""];
到目前爲止這麼好。
現在,問題是,用戶可以選擇輸入一些特殊的unicode符號,這些不是1個字節,它們也可以是2個字節,現在按下刪除按鈕時,我必須刪除整個符號,但是如果我按照上面的方法,用戶必須按兩次刪除按鈕。
在這裏,如果我這樣做:
NSRange range = NSMakeRange(currentTextFieldString.length-2, 2);
[currentTextFieldString replaceCharactersInRange:range withString:@""];
它工作正常,但隨後,正常的字符,這僅僅是1個字節,得到在同一時間刪除兩次。
如何處理這種情況?
在此先感謝。
編輯:
令人奇怪的是,如果我切換到iPhone的鍵盤,它適當的處理這兩種情況。必須有一些方法來做到這一點,有一些我錯過了,但我無法弄清楚什麼。
你的自定義鍵盤如何添加字符? – Joe 2012-08-01 13:13:27
我在這個問題上的答案可能會幫助你http://stackoverflow.com/q/11567049/1487063 – Dustin 2012-08-01 13:14:16
@Joe:無論何時用戶按下按鈕,我都會捕獲相應的字符,將其附加到文本字段的當前文本中,並將其指定爲文本字段的文本。 – 2012-08-01 13:22:08