0

在我试图实现如果用户输入文本的第一个字符为 *,那么系统应该自动添加结束 * 字符,并且光标应该放在两个 * * 之间,以便用户在特殊字符之间输入。

我尝试了以下代码,但光标始终放在结束 * 字符之后。

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if ([text hasPrefix:@"*"])
    {
        [text stringByAppendingString:@"*"];
        self.searchBar.text = text;
    }

    return YES;
}

是否可以处理 UISearchBar 上的光标位置?

4

1 回答 1

0

您在这里所做的是获取当前文本,附加一个"(不是 *),对结果不做任何事情,并将搜索栏的文本设置为之前的文本。这是如何运作的?

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if ([text hasPrefix:@"\""])
    {
        searchBar.text = [text stringByAppendingString:@"\""];
    }

    return YES;
}
于 2013-10-14T19:26:17.707 回答