我正在处理的情况下,当用户键入一个'$'作为搜索栏上的第一个字符系统应该添加另一个$后,例如:用户类型'$'和系统添加'$',所以搜索栏上的文字应该看起来像'$$'。工作流或查询shouldChangeTextInRange UISearchBar方法
我如下实现它:
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if ([text hasPrefix:@"$"])
{
text = [text stringByAppendingString:@"$"];
self.searchBar.text = text;
}
return YES;
}
问题:如何替换文本的实际工作?我的理解是,当用户键入'$'时,上述方法中的文本参数具有'$'作为值,并且在该方法执行后应该用'$$'替换?但是在执行这个方法后,我在搜索栏上得到'$$$'作为最后一个字符串。但是,如果我返回NO,对于此方法,我会在搜索栏上显示'$$',但这会阻止我在搜索栏上输入任何其他内容。
我在这里错过了什么吗?我想了解这种方法是如何工作的。