这似乎不可能,但也许别人有同样的问题。确认UITextview自动完成
是否可以通过编程方式接受自动填充,或以某种方式获取弹出的建议词汇?我的问题是我正在捕获返回/退格按键,然后将焦点移到另一个文本视图。当输入/退格命中时,文本视图将忽略自动建议的单词。看来只能通过命中空格/点接受自动完成(并返回新行)。有了这个代码:
- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text {
NSRange textViewRange = [textView selectedRange];
// Handle newrow and backspace.
if(([text length] == 0) && (textViewRange.location== 0) && textViewRange.length==0){
// BACKSPACE KEYSTROKE
[delegate doSomethingWhenBackspace];
return NO;
}else if ([text isEqualToString:@"\n"]){
// RETURN KEYSTROKE
[delegate doSomethingWhenReturn];
return NO;
}
return YES;
}
我试过当返回键被击中,但也忽略了自动完成单词以编程方式添加的“空间”。
else if ([text isEqualToString:@"\n"]){
// Tryin to accept autocomplete with no result.
textview.text = [textview.text stringByAppendingString:@" "];
// RETURN KEYSTROKE
[delegate doSomethingWhenReturn];
return NO;
}
有什么建议吗?
这是一个真正可怕的方式来实现这一点。改变`UITextView` /`UITextField`的`firstResponder`属性,而不是让UIKit为你做自动完成工作。 – cbowns 2012-02-03 01:31:47