如何在NSMenuItem中显示搜索栏

时间:2017-05-01 12:56:28

标签: swift xcode cocoa nsmenu

我正在构建一个MenuBar Swift Cocoa应用程序,该应用程序显示用户的github存储库列表。点击一个后,它会打开一个新的浏览器窗口,其中包含github.com上的存储库。

我成功加载了repos列表并将它们呈现给NSMenuItem对象。现在,我尝试在列表顶部添加搜索栏,并根据搜索词组重新呈现项目。

我的问题是:

  1. 显示"搜索栏的最佳方法是什么?在NSMenu?
  2. 是否有标准方式来搜索/过滤" NSMenuItem S'
  3. 我应该重新渲染整个菜单(调用.removeAllItems())并动态添加新项目吗?或者我应该有两个静态菜单?我之所以这样问,是因为布局(例如NSMenuItem s)在用户搜索时以及他们没有搜索时会有所不同。
  4. 我使用的是Swift 3和Xcode 8.3。谢谢!

1 个答案:

答案 0 :(得分:3)

好吧,经过几个月的尝试,我明白了。

  1. 显示"搜索栏"的最佳方法是什么?在NSMenu?

    您可以向NSMenuItem添加NSMenu并将其设置为CustomViewsearchItem.view = searchView,连接searchItem和{{ 1}}将它从故事板拖到控制器中。)

  2. 是否有标准方式来搜索/过滤" NSMenuItems吗

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

  3. 我应该重新渲染整个菜单(调用.removeAllItems())并动态添加新项目吗?或者我应该有两个静态菜单?我之所以这样问,是因为布局(例如NSMenuItems)在用户搜索时以及他们不在时都会有所不同。

    有两个子菜单是一个很好的解决方案。