快速浏览标题后,看起来您想要完成的不是他们想要使用 UISearchBar 的内容。要准确获得您想要的内容,您可能需要使用没有所有搜索修饰的普通文本字段。
也就是说,我有一个最有效的技巧。它在不使用时用虚拟字符串填充搜索栏。当您输入第一个字符时,搜索按钮会在瞬间被禁用。但在大多数情况下,它会得到你想要的:
NSString *kDummyString = @" ";
@implementation CDViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.searchBar.searchBarStyle = UISearchBarStyleMinimal;
self.searchBar.text = kDummyString;
}
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if (searchText.length < 1) {
searchBar.text = kDummyString;
}
}
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
BOOL isPreviousTextDummyString = [searchBar.text isEqualToString:kDummyString];
BOOL isNewTextDummyString = [text isEqualToString:kDummyString];
if (isPreviousTextDummyString && !isNewTextDummyString && text.length > 0) {
searchBar.text = @"";
}
return YES;
}
@end