嘿傢伙我需要一些幫助。 我有一個UITextView的子類,它曾經在iOS6下工作。但在iOS7中它有一些奇怪的行爲。我重寫shouldChangeTextInRange方法,以便可以處理一些鍵盤輸入。 以下代碼顯示了這種奇怪的行爲。當你按下'a'(或者你可以用任何你想要的其他字符替換'a')時,光標會向後跳到UITextView中的某個地方,然後回到它應該的位置。 在iOS6中,它永遠不會顯示像這樣的東西。在iOS7中,它不會影響用戶的輸入,但它看起來很奇怪。UITextView的子類在iOS7中有奇怪的行爲
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSMutableString *updatedText = [[NSMutableString alloc] initWithString:textView.text];
[updatedText insertString:text atIndex:range.location];
const char *pch = [text UTF8String];
switch (*pch) {
case 'a': // you can replace it with any other char.
textView.text = updatedText;
return NO;
break;
default:
return YES;
break;
}
}
我把這個演示放在一個簡單的項目中,如果你想看。 https://dl.dropboxusercontent.com/u/75922069/test-uitextview.zip