UISearchBar:textDidChange:空时返回值?

fuz*_*oat 1 iphone cocoa-touch objective-c uisearchbar

有没有人知道如何测试UISearchBar中的最后一个字符何时被删除.即你打字......

Gary > return "Gary"
Gar  > return "Gar"
Ga   > return "Ga"
G    > return "G"
     > return ???
Run Code Online (Sandbox Code Playgroud)

.

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
    [self FG_Filter:searchText];
}
Run Code Online (Sandbox Code Playgroud)

我以为它会是@""但是我无法让它工作.

非常感谢

加里

Ste*_*her 6

实际上,它返回nil.(或者至少在我写作时我做了searchBar:textDidChange:.)

但编写假设可能是愚蠢的代码.Apple可能会改变它以返回@""下一个版本.相反,你最好检查一下你真正关心的事情:这个字段是空的吗?

if ( [searchText length] == 0 ) {
    // string is empty
}
Run Code Online (Sandbox Code Playgroud)

如果你不想改变FG_Filter,那么这样的事情也是一个安全的改变:

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
    [self FG_Filter:searchText ?: @""];
}
Run Code Online (Sandbox Code Playgroud)