一个继承自UISearchBar,并监控给定频率下的搜索字段的子类。
这旨在在用户在搜索字段中更改文本后查询远程服务器,而无需对每个输入字符进行搜索。
搜索字段在用户停止输入指定时间间隔后触发代理方法。
使用CocoaPods进行安装
pod 'ILRemoteSearchBar'
让您的视图控制器符合ILRemoteSearchBarDelegate
协议
@interface ILViewController () <ILRemoteSearchBarDelegate>
将搜索栏的代理设置为您的视图控制器(通过viewDidLoad进行程序化设置,或通过interface builder)
ILRemoteSearchBar *searchBar = [[ILRemoteSearchBar alloc] ...];
searchBar.delegate = self;
在您的视图控制器中添加remoteSearchBar:textDidChange:方法,并从此处调用您的API
# pragma mark - ILRemoteSearchBarDelegate
- (void)remoteSearchBar:(ILRemoteSearchBar *)searchBar
textDidChange:(NSString *)searchText
{
// call your api
}
您甚至可以符合UISearchBarDelegate
协议,并接收到ILRemoteSearchBar
的代理方法
如果您的视图控制器符合UISearchBarDelegate,则当您的ILRemoteSearchBar文本更改时将调用searchBar:TextDidChange:,因为ILRemoteSearchBar是UISearchBar的子类,所以请确保发送对象不是您的ILRemoteSearchBar
-(void)searchBar:(UISearchBar *)searchBar
textDidChange:(NSString *)searchText
{
if (searchBar != self.myRemoteSearchBar) {
// do your thing
}
}
您可以使用以下方式更改等待代理方法调用的时间间隔
searchBar.timeToWait = 0.5; // 0.5 is the default value
Adrián González
The MIT License (MIT)
版权所有 (c) 2013 Adrián González <[email protected]>
特此免费授予任何个人获取本软件及其相关文档的副本(“软件”)的权利,在软件不受限制地使用,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,以及允许软件提供方使用软件,但以以下条件为限
上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。
本软件按“原样”提供,不做任何形式的保证,包括但不限于对适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任源自、源于与软件或软件的使用或其他任何方式的关联或来源。