标签: uisearchcontroller

在SearchBar Tap上显示UISearchController的SearchResultsController

我正在使用UISearchController而不是UISearchDisplayController,我想立即在SearchBar Tap上显示SearchResultController.现在它显示如下(当我点击搜索栏时):

ios uisearchcontroller

18
推荐指数
3
解决办法
7362
查看次数

取消按钮未显示在UISearchBar中

我有UICollectionView.点击搜索按钮UINavigationBar,我将添加UISearchController' searchbar作为标题视图UINavigationItem.对于iPhone它运作正常.对于iPad,cancel按钮不显示.仅搜索栏占据整个宽度.

在此输入图像描述

任何人都可以帮我解决这个问题吗?提前致谢.

objective-c uisearchbar ios uisearchcontroller

18
推荐指数
3
解决办法
1万
查看次数

如何将UISearchController的searchBar设置为不是tableHeaderView或navigationItem.titleview的视图?

当桌子滚动时,我试图将搜索栏保持在视图中.目前我将它作为标题放在一个tableview中,它可以正常工作,当然,当你走下桌子时,搜索栏会滚动离开屏幕.我以为我可以这样做只需修改此代码示例:

如何在iOS 8中使用UISearchController,其中UISearchBar位于导航栏中并具有范围按钮?

searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.delegate = self
searchController.searchBar.delegate = self
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
tableview.tableHeaderView = searchContoller.searchBar // How to put it elsewhere?
//Alternative that also works
navigationItem.titleView = searchController.searchBar
Run Code Online (Sandbox Code Playgroud)

这个想法是采取其他观点并做

otherview = searchController.searchBar
Run Code Online (Sandbox Code Playgroud)

例如,UISearchBar的出口,或空白的UIView,或类似的东西.

但如果我这样做,它不会显示searchBar.它似乎只能用作表的标题视图或navigationItem.titleView.

我错过了什么吗?

uisearchbar ios swift ios8 uisearchcontroller

16
推荐指数
1
解决办法
7828
查看次数

tvOS:无论如何都要阻止搜索键盘在滚动时崩溃?

所以我有一个标准设置,用于在我的tvOS应用程序中设置搜索视图.

let storyboard = UIStoryboard(name: "Main", bundle: nil)
guard let resultsController = storyboard.instantiateViewControllerWithIdentifier(SearchResultsViewController.storyboardIdentifier) as! SearchResultsViewController

let searchController = UISearchController(searchResultsController: resultsController)
searchController.searchResultsUpdater = resultsController
searchController.hidesNavigationBarDuringPresentation = false
searchController.searchBar.placeholder = NSLocalizedString("Enter keyword (e.g. iceland)", comment: "")

let searchContainer = CustomUISearchContainerViewController(searchController: searchController)
Run Code Online (Sandbox Code Playgroud)

当推入导航堆栈时,这是一个视图,其顶部有搜索栏,下面的结果如下所示

在此输入图像描述

因此,每当结果很大并且我必须滚动键盘时,只要我向上滚动并向上滑过最顶端的结果,键盘就会折叠并再次展开.有什么方法可以防止这种行为吗?我只是希望它一直保持开放状态.我想的可能是子类化UISearchController,但我不确定在那里甚至可以替换

uisearchbardelegate apple-tv swift uisearchcontroller tvos

16
推荐指数
1
解决办法
677
查看次数

UITableView单元格上的Peek和Pop因UISearchController而失败

Peek和Pop正在合作UISearchController.但是,一旦您开始使用表格,Peek和Pop就会停止工作updateSearchResults.

使用UISearchController演示扩展了Apple的Table Search以支持Peek和Pop作为示例: 在此输入图像描述

问题是当我开始搜索表时,Peek和Pop不再起作用了.它只是选择亮点: 在此输入图像描述

我所做的更新MainTableViewController是:

class MainTableViewController: BaseTableViewController, UISearchBarDelegate, UISearchControllerDelegate, UISearchResultsUpdating {
    override func viewDidLoad() {
        super.viewDidLoad()
        ...
        if traitCollection.forceTouchCapability == .available {
            registerForPreviewing(with: self, sourceView: tableView)
        }
    }
}

extension MainTableViewController: UIViewControllerPreviewingDelegate {

    func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
        guard let indexPath = tableView?.indexPathForRow(at: location),
            let cell = tableView?.cellForRow(at: indexPath),
            let controller = storyboard?.instantiateViewController(withIdentifier: "DetailViewController") as? DetailViewController
                else { return nil }

        previewingContext.sourceRect = cell.frame …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift uisearchcontroller peek-pop

16
推荐指数
1
解决办法
1317
查看次数

UISearchController的搜索栏与第一个tableview单元格重叠

我正在使用UISearchController,UISearchBar还有一个范围栏.搜索栏作为子视图添加到UIView其上方UItableView.我这样做了,因为即使滚动了tableview,我也希望搜索栏始终可见.

问题是scopebar与第一个tableview单元格重叠

故事板

在此输入图像描述

范围栏与tableview单元格重叠

在此输入图像描述

如何防止这种重叠?,我无法在导航栏中显示搜索栏,因为放置在导航栏中的范围栏不会显示.

uitableview swift ios8 uisearchcontroller

15
推荐指数
2
解决办法
4342
查看次数

如何使用目标c实现UISearchController

我有一个用objective-c编写的现有应用程序,带有表格视图.

我现在正在尝试返回此应用并在表格中添加搜索栏.

问题是,现在有了新的UISearchController协议,在网上似乎很少有关于如何在objective-c中实现这一点的信息 - 我能找到的所有教程和示例都是针对Swift的.

我已将代理添加到.h文件中:

UISearchBarDelegate, UISearchResultsUpdating
Run Code Online (Sandbox Code Playgroud)

我有以下代码viewDidLoad,它可以工作并添加一个搜索栏:

// Search controller
searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
searchController.searchResultsUpdater = self;
searchController.dimsBackgroundDuringPresentation = NO;
searchController.searchBar.delegate = self;

// Add the search bar
self.tableView.tableHeaderView = searchController.searchBar;
self.definesPresentationContext = YES;
[searchController.searchBar sizeToFit];
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的!

我将非常感谢有关如何在现有的objective-c app tableview中实现新的UISearchController的任何指针,示例代码或教程.

objective-c ios uisearchcontroller

15
推荐指数
1
解决办法
2万
查看次数

带有NavigationBar LargeTitle和SearchController的iOS 11 UIRefreshControl消失了

我有一个带有largeTitle和searchcontroller的navigationBar,我的tableView有一个refreshcontrol.

当我拉动刷新时,refreshcontrol的activityIndi​​cator消失,但de刷新过程继续,即使当进程完成并且我调用UIRefreshControll的.endRefreshing()时,navigationBar也没有恢复到正常大小.

在此输入图像描述

有人有同样的问题吗?

uinavigationbar uirefreshcontrol swift uisearchcontroller ios11

15
推荐指数
3
解决办法
3702
查看次数

UITableViewController中的UISearchController-Rows不可选,表视图显示为灰色

我试图让UISearchController在UITableViewController中工作.我以编程方式创建所有内容(即没有界面构建器).除了在搜索时,我无法选择任何表格单元格(-tableView:didSelectRowAtIndexPath:从未被调用),因此大多数情况下都应该正常工作.

但是,我不认为这是一个与代表有关的问题,也不认为该方法没有被调用的另一个常见原因; 在搜索时,包含搜索结果的表格视图显示为灰色(即不活动),我相信这就是我无法选择任何单元格的原因.

我的想法是UISearchBar被卡住了作为第一响应者,但我尝试了各种方式来辞去这种状态和/或试图迫使表视图成为第一响应者,但所有这些都带来了灾难性的结果.

这是我的UITableViewController子类的相关代码:

@interface SearchResultsTableViewController()

@property (copy, nonatomic) NSArray *searchResults;

@property (strong, nonatomic) UISearchController *searchController;

@end


@implementation SearchResultsTableViewController

- (NSArray *)searchResults
{
    // Lazy array instantiation
    if (!_searchResults)
    {
        _searchResults = [[NSArray alloc] init];
    }

    return _searchResults;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self setSearchController:[[UISearchController alloc] initWithSearchResultsController:nil]];
    [[self searchController] setSearchResultsUpdater:self];

    [[[self searchController] searchBar] setFrame:CGRectMake(0.0f, 0.0f, CGRectGetWidth([[self tableView] frame]), 44.0f)];
    [[[self searchController] searchBar] setSearchBarStyle:UISearchBarStyleMinimal];
    [[[self searchController] searchBar] setPlaceholder:@"Search Presentations"];
    [[[self searchController] searchBar] setDelegate:self];

    [[self tableView] …
Run Code Online (Sandbox Code Playgroud)

objective-c ipad ios ios8 uisearchcontroller

14
推荐指数
1
解决办法
2501
查看次数

使用UISearchController修复了UISearchBar - 不使用UITableView的标题视图

是否可以将UISearchController的UISearchBar放在除UITableView标题视图之外的某个位置?

Apple的UISearchController示例代码中,使用了以下内容.

[self.searchController.searchBar sizeToFit];
self.tableView.tableHeaderView = self.searchController.searchBar; 
Run Code Online (Sandbox Code Playgroud)

是否有可能将searchBar定位在其他地方?假设我们想要实现一个固定的UISearchBar,就像在contacts app中使用的那样.我试过了,但搜索栏根本没有出现.

uisearchbar ios uisearchcontroller

14
推荐指数
2
解决办法
8949
查看次数