2 for 2012 for_2012 于 2013.05.29 13:42 提问

用户停止UISearchBar输入检测

UISearchBar代码:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
    NSTimer *myTimer;

    NSLog(@"Timer=%@",myTimer);
    if (myTimer)
    {
        if ([myTimer isValid])
        {
            [myTimer invalidate];
        }
        myTimer=nil;
    }
    myTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(OnTextChange) userInfo:nil repeats:NO];

}

在日志中显示Timer=null,其中OnTextChange 是从URL提取数据的方法。

1个回答

Chengzi_963
Chengzi_963   2013.05.29 14:58
已采纳

将这行代码写在 .h文件中:

NSTimer *myTimer;

然后在 .m文件中这样:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{

    NSLog(@"Timer=%@",myTimer);
    if (myTimer)
    {
        if ([myTimer isValid])
        {
            [myTimer invalidate];
        }
        myTimer=nil;
    }
    myTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(OnTextChange) userInfo:nil repeats:NO];

}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
UISearchBar限制输入字数以及输入到最大限值以后不能删除
在UISearchbar中有限制输入的代理方法,在里面设置即可- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text NS_AVAILABLE_IOS(3_0); // called before text changes {
用 UITextField 自定义UISearchBar 监听输入字符串改变的问题
用 UITextField 自定义的 UISearchBar  没有如下的 UISearchBar 中的协议方法 - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText  UITextField 中只有协议方法: -(BOOL)textField:(UITextField
UISearchBar限定输入长度
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {          if (range.location > 5){ //限定只能输入6位         return NO;     }     ret
设置UISearchBar输入字体颜色和默认字体颜色
UISearchBar *searchBar = [UISearchBar new];     UITextField *searchField = [searchBar valueForKey:@"_searchField"];     // 输入文本颜色     searchField.textColor = [UIColor blackColor];     // 默
iOS:UITextView、UITextField检测用户是否完成输入的选择
- (void)textViewDidChange:(UITextView *)textView{ UITextRange * selectedRange = [textView markedTextRange]; if(selectedRange == nil || selectedRange.empty){ //没有待选字的时候 NS
让 UISearchBar 支持空搜索
让 UISearchBar 支持空搜索,当没有输入的时候,search 按钮一样可以点击 - (void)searchBarTextDidBeginEditing:(UISearchBar *) searchBar { UITextField *searchBarTextField = nil; NSArray *views = ([[[UIDevice currentDev
UISearchBar设置技巧(输入框,取消按钮等背景设置)
UISearchBar光标、输入框、placeholder的颜色,取消按钮背景,文本框背景
获取searchbar里的textField
-(void) layoutSubviews{         [super layoutSubviews];         UIView *searchTextField = nil;         // 经测试, 需要设置barTintColor后, 才能拿到UISearchBarTextField对象         self.barTintColor = [UIColor wh
UISearchBar基本用法及searchBar常用代理方法
直接上代码。 1.初始化 UISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 40)];     searchBar.placeholder = @"搜索"; //和textfield一样有placeholder属性     searchBar.delegate
UISearchBar中无法输入中文
解决方法: 将UISearchBar的keyboard属性设为default ,例如 m_searchBar.keyboardType = UIKeyboardTypeDefault 设置模拟器的语言为中文,在真机上一样: Setting(模拟器中的应用程序)- General - Language & Region - iPhone Language - 简体中文