UITextView 中的自定义自动完成

Posted

技术标签:

【中文标题】UITextView 中的自定义自动完成【英文标题】:Customized autocompletion in UITextView 【发布时间】:2013-01-10 06:11:27 【问题描述】:

我想为 UITextView 做自定义的自动补全...

例如:

  If the user starts to type "Busines" I would like to suggest "Business1", "Business2", , so that the user can select any one of the 2 suggestions or choose to type a new one.

所有自定义单词建议都将在数组中...

我怎样才能做到这一点??

completionsForPartialWordRange:inString:language: 是我可以使用的东西吗?如何传递数组中的值???

【问题讨论】:

你是如何加载你的数组的? 【参考方案1】:

你可以试试这个代码。

  - (void)searchAutocompleteEntriesWithSubstring:(NSString *)substring 

    [autocomplete_array removeAllObjects];
    for(int i=0;i<[your_main_array count];i++)
    
         NSString *curString = [your_main_array objectAtIndex:i];
         curString = [curString lowercaseString];
         substring = [substring lowercaseString];

         if ([curString rangeOfString:substring].location == NSNotFound) 
          
         else 
          
             [autocomplete_array addObject:curString] 
           
    
    [autocompletedisplayTableView reloadData];


- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 

    if( textView == your_TextView)
    
        [your_TextView resignFirstResponder];
        autocompletedisplayTableView.hidden = NO;

        NSString *substring = [NSString stringWithString:your_TextView.text];
        substring = [substring stringByReplacingCharactersInRange:range withString:string];
        [self searchAutocompleteEntriesWithSubstring:substring];
        return YES;
    

your_main_array :将是您将从 Web 服务加载的原始数组。 autocomplete_array :将是搜索过程完成后您将获得的数组。

当用户搜索时,您必须将 autocomplete_array 传递给您的 UITableView

【讨论】:

以上是关于UITextView 中的自定义自动完成的主要内容,如果未能解决你的问题,请参考以下文章

ios中使用monotouch的自动完成选项的自定义列表

如何以编程方式关闭 UITextView 中的自动更正弹出框?

iphone设置UITextView委托打破自动完成

具有自动完成功能的自定义表格可编辑数据

Salesforce:查找字段的自动完成

Jquery 自动完成 - 结果列表的自定义 html