更改文本我跟着雷Wenderlich的文本自動完成此教程:http://www.raywenderlich.com/336/how-to-auto-complete-with-custom-values自動完成使用的UITextView應該在範圍
而且它的偉大工程,但只允許搜索包含在TextView的字符串。我需要它在同一視圖中搜索多個字符串。例如:
Hi @user, how's @steve
應搜索兩個出現的@。這裏是原代碼:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
autocompleteTableView.hidden = NO;
NSString *substring = [NSString stringWithString:textField.text];
substring = [substring stringByReplacingCharactersInRange:range withString:string];
[self searchAutocompleteEntriesWithSubstring:substring];
return YES;
}
這裏是我的:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
NSArray* items = [textView.text componentsSeparatedByString:@"@"];
if([items count] > 0 && [[items lastObject] length]){
NSString *substring = [NSString stringWithString:[items lastObject]];
[self searchAutocompleteEntriesWithSubstring:substring];
}
return YES;
}
,一切工作,但它似乎是一個字符後面。因此輸入「J」將不會導致任何結果,但「Jo」將返回「J」的結果。我認爲它必須做的:
[substring stringByReplacingCharactersInRange:range withString:string]
但我嘗試任何崩潰與NSRange越界。
工程就像一個魅力。甚至沒有考慮過事前做替換。還修復了我的數組大小。謝謝! – 2012-02-06 13:39:36