我正在构建一个 MenuBar Swift Cocoa 应用程序,它显示用户的 github 存储库列表。单击一个后,它会打开一个新的浏览器窗口,其中包含 github.com 上的存储库。
我正在成功加载存储库列表并将它们呈现给 NSMenuItem 对象。现在,我尝试在列表顶部添加一个搜索栏,并根据搜索短语重新呈现项目。
我的问题是:
- 在 NSMenu 中显示“搜索栏”的最佳方法是什么?
- 是否有标准的方法来“搜索/过滤”
NSMenuItem
? - 我是否应该重新呈现整个菜单(调用
.removeAllItems()
)并动态添加新项目?或者我应该有两个静态菜单吗?我问这个是因为布局(例如NSMenuItem
s)在用户搜索和不搜索时会有所不同。
我使用的是 Swift 3 和 Xcode 8.3。谢谢!
最佳答案
好吧,经过几个月的尝试,我想通了。
在 NSMenu 中显示“搜索栏”的最佳方法是什么?
您可以将
NSMenuItem
添加到NSMenu
并将其 View 设置为CustomView
(searchItem.view = searchView
,将searchItem
和searchView
从 Storyboard 拖到 Controller 中)。是否有“搜索/过滤”NSMenuItems 的标准方法?
不,没有。清除项目并重新渲染。
我是否应该重新呈现整个菜单(调用 .removeAllItems())并动态添加新项目?或者我应该有两个静态菜单吗?我问这个是因为布局(例如 NSMenuItems)在用户搜索和不搜索时会有所不同。
事实证明,有两个子菜单是一个很好的解决方案。
关于swift - 如何在 NSMenuItem 中显示搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43719450/