美文网首页
iOS SearchBar如何显示iqkeyboardmanag

iOS SearchBar如何显示iqkeyboardmanag

作者: 阿木摄影 | 来源:发表于2019-03-14 14:39 被阅读0次

    遇到个奇怪的问题,记录下:

    你是否在开发中遇到,searchBar怎么调用这个键盘管理iqkeyboardmanager,为啥你加进去了,就是不显示呢?
    对此,我就懵逼了。。。。。

    尝试解决

    咋办呢,试了下,直接在当前的VC中加入代码让他出来:
    大概是这个样子:

    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        [IQKeyboardManager sharedManager].enable = YES;
    }
    - (void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
        [IQKeyboardManager sharedManager].enable = NO;
    }
    

    结果,没用,还是没出来。。

    继续尝试

    对此,我想了一下,难道我要自己定义一个搜索输入框,虽说能解决问题,但是,需要花时间去写,有没有更好的办法呢;
    我谷歌了一下,于是乎,有了解决办法:
    那就是修改源码:参考: how to get iqkeyboardmanager to include UISearchBar
    其实就是,打开这个第三方库,找到这个分类:

    IQUIView+Hierarchy.m
    第309行,- (void)isSearchBarTextField

    isSearchBarTextField = YES -> isSearchBarTextField = NO

    最终就是这个样子:

    -(BOOL)isSearchBarTextField
    {
        UIResponder *searchBar = [self nextResponder];
        
        BOOL isSearchBarTextField = NO;
        while (searchBar && isSearchBarTextField == NO)
        {
            if ([searchBar isKindOfClass:[UISearchBar class]])
            {
                isSearchBarTextField = NO;
                break;
            }
            else if ([searchBar isKindOfClass:[UIViewController class]])    //If found viewcontroller but still not found UISearchBar then it's not the search bar textfield
            {
                break;
            }
            
            searchBar = [searchBar nextResponder];
        }
        
        return isSearchBarTextField;
    }
    

    然后,run,It's OK;

    相关文章

      网友评论

          本文标题:iOS SearchBar如何显示iqkeyboardmanag

          本文链接:https://www.haomeiwen.com/subject/pcwqmqtx.html