如何在 NSMenuItem 中显示搜索栏

How to display search bar in NSMenuItem

我正在构建一个显示用户 github 存储库列表的 MenuBar Swift Cocoa 应用程序。单击一个后,它会打开一个新的浏览器 window,存储库位于 github.com。

我正在成功加载存储库列表并将它们呈现给 NSMenuItem 对象。现在,我正在尝试在列表顶部添加一个搜索栏,并根据搜索短语重新呈现项目。

我的问题是:

  1. 在 NSMenu 中显示 "search bar" 的最佳方法是什么?
  2. 有"search/filter"NSMenuItem的标准方法吗?
  3. 我应该重新呈现整个菜单(调用 .removeAllItems())并动态添加新项目吗?或者我应该有两个静态菜单吗?我问这个是因为布局(例如 NSMenuItems)在用户搜索和不搜索时会有所不同。

我正在使用 Swift 3 和 Xcode 8.3。谢谢!

好吧,经过几个月的尝试,我想通了。

  1. 在 NSMenu 中显示 "search bar" 的最佳方法是什么?

    您可以将 NSMenuItem 添加到 NSMenu 并将其视图设置为 CustomViewsearchItem.view = searchView,连接 searchItemsearchView 通过将它从故事板拖到控制器中)。

  2. 是否有 "search/filter" NSMenuItems 的标准方法?

    不,没有。清除项目并重新渲染。

  3. 我是否应该重新呈现整个菜单(调用 .removeAllItems())并动态添加新项目?或者我应该有两个静态菜单吗?我问这个是因为布局(例如 NSMenuItems)在用户搜索和不搜索时会有所不同。

    事实证明,有两个子菜单是一个很好的解决方案。