gpt4 book ai didi

macos - 在 macOS 10.11+ 上过滤或搜索 NSCollectionView

转载 作者:行者123 更新时间:2023-12-03 17:09:30 27 4
gpt4 key购买 nike

我正在寻找一种方法来过滤 NSCollectionView 中显示的项目。我的 NSCollectionView 使用 10.11 及更高版本的机制(即使用 NSCollectionViewDataSourceNSCollectionViewDelegate)进行管理。我似乎找不到任何有关如何完成此操作的文档。

是否可以为可见项目实现过滤器,如果可以,是否有文档可以向我展示它是如何完成的?

最佳答案

可能有更好的方法,但在此之前,我发现这是一种不需要修改数据源的解决方法(这在概念上似乎更清晰,因为数据在过滤过程中不应更改,而只是更改哪些项目)被渲染)。

分配一个 NSCollectionViewDelegateFlowLayout 作为您的 NSCollectionView 委托(delegate)。然后实现方法collectionView(NSCollectionView, layout: NSCollectionViewLayout, sizeForItemAt: IndexPath) ( docs )。这允许您在 Collection View 的布局期间指定每个项目的大小。我只是为与当前过滤字符串不匹配的项目返回了 0 宽度和高度的 CGSize 。否则返回给定布局的 ItemSize。对于搜索字段的每个操作(例如每次击键),我都会在 Collection View 上调用 ReloadData(),这会导致重新布局。

这样做的一个问题是,您必须将最小项目间和行间距设置为 0,否则 0 大小的项目仍将获得项目间空间,这可能会产生间距不均匀的可见项目。

我仍然想知道一种更好的方法,所以如果 future 的读者有更好的方法,我将更改已接受的答案。

关于macos - 在 macOS 10.11+ 上过滤或搜索 NSCollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45696268/

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