首先,我想说我在Swift
中没有找到任何好的答案。我创建了search bar
。单击按钮时显示,取消时隐藏searchbar
。它工作正常,取消按钮在所有iPhones
上可见,但由于某种原因在iPad
上不。是什么原因造成的?
这就是我创建searchbar
的方式:
//Create searchbar
func createSearchBar(){
searchBar.showsCancelButton = true
searchBar.tintColor = UIColor(red:0.184, green:0.996, blue:0.855, alpha:1.00)
searchBar.placeholder = "Search brands"
searchBar.delegate = self
searchBar.hidden = false
searchBar.alpha = 0
navigationItem.titleView = searchBar
navigationItem.setLeftBarButtonItem(menuButton, animated: true)
navigationItem.setRightBarButtonItem(searchButtton, animated: true)
UIView.animateWithDuration(0.5, animations: {
self.searchBar.alpha = 1
}, completion: { finished in
self.searchBar.becomeFirstResponder()
})
}
4条答案
按热度按时间cdmah0mi1#
我的项目也面临着同样的问题。我在苹果论坛上发帖,很多开发者都评论说这是一个xcode bug。所以我为iPad浏览量手动添加了取消按钮
我之前已经发布了关于这个问题的答案。Check that too .:)
30byixjq2#
https://developer.apple.com/documentation/uikit/uisearchbar/1624283-showscancelbutton
对于在iPad上运行的应用,将忽略此属性的值,并且不显示取消按钮。
Apple在文档中添加了此内容!
nwnhqdif3#
如果您不将UISearchbar用作NavigationBarItem,则UISearchbar的取消按钮将在iPad上工作。
hpxqektj4#
UISearchBar在iPad和iPhone上用作navigationItem时的工作方式不同。在iPad上,取消按钮被“返回”按钮取代,而在iPhone上,取消按钮仍然显示为按钮。*
1.在iPad上,如果您将UISearchBar用作UINavigationBar中的navigationItem,则不会显示取消按钮。但是,如果您在任何其他上下文中(例如在视图控制器中)使用UISearchBar,则取消按钮将显示并按预期运行。
1.在iPhone上,UISearchBar既可以用作navigationItem,也可以用作视图控制器。在这两种情况下,将显示取消按钮,并按预期运行。
1.当UISearchBar用作iPhone上的navigationItem时,当用户开始编辑搜索栏时,取消按钮将显示为右栏按钮项。这允许用户容易地取消搜索并返回到前一屏幕。
在iPad上,如果您将UISearchBar用作UINavigationBar中的navigationItem,则不会显示取消按钮。但是,如果您在任何其他上下文中(例如在视图控制器中)使用UISearchBar,则取消按钮将显示并按预期运行。
}
从viewDidLoad调用上面的函数来设置UISearchBar