ios - UISearchController 不触发委托(delegate)方法和搜索栏委托(delegate)方法

标签 ios swift ios8

所以我有 UISearchController,它显示栏,我可以输入文本但它不会触发委托(delegate)方法。这是我的代码:

@IBAction func searchTapped(AnyObject) {

    NSLog("search...")

    let cancelButton = UIBarButtonItem(image: UIImage(named: "delete_sign-50"), landscapeImagePhone: nil, style: .Plain, target: self, action: "cancelTapped:")

    var searchController = UISearchController(searchResultsController: nil)
    searchController.dimsBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "enter the text to search"
    searchController.searchResultsUpdater = self;
    searchController.hidesNavigationBarDuringPresentation = false
    searchController.delegate = self
    searchController.searchBar.delegate = self

    self.definesPresentationContext = true;


    UIView.animateWithDuration(0.2, animations: { () -> Void in

        self.navigationItem.rightBarButtonItems = nil
        self.navigationItem.rightBarButtonItems = [cancelButton]
        self.navigationItem.titleView = searchController.searchBar
        searchController.searchBar.sizeToFit()
        self.toolbar.hidden = false
        self.tableView?.hidden = false
    })

    //add first responser to search bar
    searchController.searchBar.becomeFirstResponder()

}

func updateSearchResultsForSearchController(searchController: UISearchController) {

    NSLog("1 %@", searchController.searchBar.text);

}

func searchBar(searchBar: UISearchBar, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
    NSLog("2 %@", text)
    return true
}

当文本更改时,这些方法都不会被调用。

除此之外,我还尝试将 searchController 作为变量添加到我的 Controller 中,在这种情况下,它的效果非常好——当我点击搜索栏时,它会移出屏幕。

最佳答案

searchController.active = YES;

这有帮助,不知道为什么没有在任何地方提到它。

关于ios - UISearchController 不触发委托(delegate)方法和搜索栏委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29394971/

相关文章:

ios - UIWindow子类: Touches event not get fired

ipad - iOS 8中的UIActivityViewController错误

ios - 沿途发送的多点连接和数据

ios - 如何解决 unarchiveObject 的弃用问题(withFile :)

swift - fatal error : Index out of range when click specific cells for segue

ios - 检测自定义键盘扩展中的输入对象 View 类型

swift - 框架+应用+扩展的统一openURL

ios - 从 UICollectionViewCell 实例访问图像时遇到问题

ios - 一台mac创建2个证书

ios - 根据 ScrollView 上的内容增加表格 View 高度