gpt4 book ai didi

iphone - 使用 UITextField 和 UISearchDisplayController 代替 UISearchBar

转载 作者:行者123 更新时间:2023-12-01 18:00:23 24 4
gpt4 key购买 nike

如何在 UISearchDisplay Controller 中使用文本字段而不是搜索栏?

我想通过摆脱放大镜图标并自定义背景来完全自定义搜索栏。还阻止它调整大小并调出“取消”按钮。我看到有些人通过编辑不应该编辑的搜索栏 api 部分使用 hacky 方法来做到这一点。因此,在此级别上进行自定义似乎更被接受的方法是使用 UITextfield 而不是 UISearchBar。但是网上似乎没有任何关于这样做的信息!

如果我使用文本字段,当文本更改以使 UISearchDisplayController 工作时,我需要调用哪些方法?

最佳答案

这里的技巧是重写 UISearchDisplayController。它实际上只做 3 件事。

  • 将搜索栏向上移动到 View 顶部并隐藏 UINavigationBar。
  • 在 View 的其余部分放置一个透明的封面 View 。
  • 显示带有任何搜索结果的 UITableView。

  • 因此,首先将您的 UIViewController 注册为 UITextField 的委托(delegate)和..
    -(void)textFieldDidBeginEditing:(UITextField *)textField {
    //here is where you open the search.
    //animate your textfield to y = 0.
    //I usually make the search tableview and the cover a separate view,
    //so I add them to my view here.

    [self.navigationController setNavigationBarHidden:YES animated:YES];
    }

    -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSString *searchText = [[NSString alloc] initWithString:[textField.text stringByReplacingCharactersInRange:range withString:string]];
    //display your search results in your table here.
    }

    -(void)textFieldDidEndEditing:(UITextField *)textField {
    //hide all of your search stuff
    [self.navigationController setNavigationBarHidden:NO animated:YES];
    }

    关于iphone - 使用 UITextField 和 UISearchDisplayController 代替 UISearchBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10805287/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com