我想为 UITableView
设置最近的搜索记录下拉列表。我使用UITableView
逻辑:
我的实施方法是在UISearchBar
下方设置UISearchBar
,然后点击viewdidload
,它会弹出。
我最初在
-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
和searchbartext
中隐藏了该表视图,取消隐藏了tableview。
我遇到了太多问题:
1。当tapgestures
为空时,不会启用返回按钮。在这种情况下,如果我必须再次取消/隐藏表视图,我必须依赖{{1 }。
2。再次点击searchbartext
不会触发任何代表。唯一一次点击searchbartext
时触发代表的时间是第一次点击它时它会调用-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
你们有没有其他解决方案/方法以比这更好的方式实现这个功能?
我们是否有任何自定义的UISearchBar
近期历史记录下拉列表?
我已经在UISearchBar
,cocoacontrols
和code4app
中搜索了自定义cocoapods
最近的历史记录下拉列表,因为这无法找到任何希望。
请帮帮我。
答案 0 :(得分:1)
对于第一期,您可以在UISearchBar
上添加类似这样的类别,当点击{{1}时,这将始终启用键盘上的return
按钮}
UISearchBar
对于第二个问题,为什么不使用为每个输入的字符调用的@implementation UISearchBar (MyAddition)
- (void)alwaysEnableSearch {
// Loop around subviews of UISearchBar
NSMutableSet *viewsToCheck = [NSMutableSet setWithArray:[self subviews]];
while ([viewsToCheck count] > 0) {
UIView *searchBarSubview = [viewsToCheck anyObject];
[viewsToCheck addObjectsFromArray:searchBarSubview.subviews];
[viewsToCheck removeObject:searchBarSubview];
if ([searchBarSubview conformsToProtocol:@protocol(UITextInputTraits)]) {
@try {
// Force return key to be enabled
[(UITextField *)searchBarSubview setEnablesReturnKeyAutomatically:NO];
}
@catch (NSException *iException) {
}
}
}
}
委托方法。
作为旁注,this SO thread有一个示例代码来执行此操作。这可能会对你有帮助。
祝你好运!答案 1 :(得分:0)
根据您最近的澄清,我正在重写可能的步骤。