有没有人知道如何测试UISearchBar中的最后一个字符何时被删除。即你输入......
Gary > return "Gary"
Gar > return "Gar"
Ga > return "Ga"
G > return "G"
> return ???
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
[self FG_Filter:searchText];
}
我以为它会是@“”但是我无法让它工作。
非常感谢加里
答案 0 :(得分:6)
实际上,它会返回nil
。 (或者至少在我写searchBar:textDidChange:
时这样做了。)
但编写假设可能是愚蠢的代码。 Apple可以将其更改为下一版本返回@""
。相反,你最好检查你真正关心的是什么:字段是否为空?
if ( [searchText length] == 0 ) {
// string is empty
}
如果你不想改变FG_Filter,那么这样的事情也是安全的改变:
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
[self FG_Filter:searchText ?: @""];
}
答案 1 :(得分:0)
把
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text
在你的代表中并测试是否
[text length] == 0 && range.location == [searchBar.text length] - 1