在尝试实现该功能时,如果用户输入文本的第一个字符为*,则系统应自动添加结束*字符,并且光标应放在两个* *之间,供用户输入特殊字符。
我尝试了以下代码,但光标始终位于结束*字符之后。
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if ([text hasPrefix:@"*"])
{
[text stringByAppendingString:@"*"];
self.searchBar.text = text;
}
return YES;
}
是否可以在UISearchBar上处理光标位置?
答案 0 :(得分:0)
你在这里做的是获取当前文本,附加"
(不是*),对结果不做任何操作,并将搜索栏的文本设置为之前的文本。这是如何工作的?
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if ([text hasPrefix:@"\""])
{
searchBar.text = [text stringByAppendingString:@"\""];
}
return YES;
}