我有UINavigationItem和UISearachController;
#warning - addded UISearchController
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.navigationItem.searchController = self.searchController;
self.navigationItem.hidesSearchBarWhenScrolling = NO;
if (@available(iOS 16.0, *)) {
self.navigationItem.preferredSearchBarPlacement = UINavigationItemSearchBarPlacementInline;
}
self.searchController.searchBar.delegate = self;
self.searchController.searchResultsUpdater = self;
self.searchController.definesPresentationContext = YES;
self.searchController.obscuresBackgroundDuringPresentation = NO;
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.searchBar.placeholder = @"Search";
self.searchController.searchBar.searchBarStyle = UISearchBarStyleProminent;
[self.searchController.searchBar sizeToFit];
当我点击导航栏中的搜索按钮时,我可以看到一个搜索字段和一些带有三个点的按钮(看起来像UIContextMenu,点击日志中的此按钮后,我看到“[UILog] Called -[UIContextMenuInteraction updateVisibleMenuWithBlock:],而没有上下文菜单可见。这不会做任何事情”)。
问题:
1.为什么我可以在导航中看到这个?(我不加这个)
1.如何从导航视图中删除此按钮
2条答案
按热度按时间ffscu2ro1#
这可能是因为导航栏在上下文菜单中 Package 了所有额外的按钮。这是WWDC 2022中引入的新功能。您可以查看此视频以了解更多细节:https://developer.apple.com/videos/play/wwdc2022/10069/
1szpjjfi2#
所以这个元素被命名为“溢出支持按钮”。(感谢@Mozz)
如果您向navigationItem.rightBarButtonItems中添加任何项目,那么在打开搜索栏(self.navigationItem.preferredSearchBarPlacement = UINavigationItemSearchBarPlacementInline;)
在我的例子中,我重新实现了rightBarButtonItem,这允许我省略“溢出按钮”的表示