2012-03-25 158 views
2

我用我自己的Unicode字符創建了自定義鍵盤...該應用程序工作的很好,但是當我按下後部空間時,它有時不會退格,並且會在其他時候...並且經常在我' VE得到它刪除與我的退格前一個字符其他字母鍵將不再輸入Unicode字符我想...自定義鍵盤退格按鈕

這裏是我的Unicode字符代碼之一:

textViewString = [[NSString alloc] initWithFormat:@"%@%@", textView.text, char6String]; 
    [textView setText:textViewString]; 

其中「char6string 「在這種情況下,只是我的unicode字符之一」π「

這裏是退格鍵代碼:

if ([textView.text length]>0) { 
     textView.text = [textView.text substringToIndex:([textView.text length]-1)]; 
    } 
+0

你如何創建自定義鍵盤?因爲這聽起來像是鍵盤和你已經實現它的方式的問題,而不是你提供的代碼。 – drekka 2012-03-26 01:53:36

+0

截至目前,他們只是按鈕,沒有更多..當你按下這些按鈕它運行我提供的代碼, – 2012-03-26 02:14:53

+0

好吧,嗯,這段代碼運行在後臺或主線程。後臺線程試圖操縱用戶界面將做各種不可預知的事情。 – drekka 2012-03-26 02:19:23

回答

0

嗯,我想出了這個問題,這是一個混亂的解決方案..無論出於何種原因,當你三人添加任何約4個月前出現的新的Unicode字符通過代碼的文本字段時,它添加了Unicode字符以及一個奇怪的故障unicode字符,不存在導致不可複製的文本和2個字符添加...所以現在我需要檢測是否按下按鈕添加一個字符,如果它更改長度1或2,如果它將長度改爲2它是一個新的Unicode字符,我需要做一個自動刪除,否則,如果它只增加一個就沒問題,我不需要做任何事情!

我新加字符的TextView字符串看起來像這樣爲每個按鈕:

length1 = [textView.text length]; 
textView.text = [textView.text stringByAppendingString:char1String]; 
length2 = [textView.text length]; 
if (((length2)-(2))==length1) { 
    [textView setText:[textView.text substringToIndex:length2-1]]; 
} 
4

我做我的應用程序的一個類似的東西,並沒有使用setText:而不是textView.text =見過的任何問題。

NSUInteger length = [self.textField.text length]; 
if (length>0) { 
    [self.textField setText:[text substringToIndex:length-1]]; 
} 

希望這有助於!

+0

現在檢查,感謝您的輸入! – 2012-03-26 02:15:13

+0

我仍然遇到問題/:嗯,這是一個有趣的問題,我不知道可能是什麼原因導致它,因爲代碼似乎很好! – 2012-03-26 02:21:03