Swift 如何在NSMenuItem中显示搜索栏

Swift 如何在NSMenuItem中显示搜索栏,swift,xcode,cocoa,nsmenu,Swift,Xcode,Cocoa,Nsmenu,我正在构建一个MenuBar Swift Cocoa应用程序,它显示用户github存储库的列表。单击其中一个后,它将打开一个新的浏览器窗口,其中包含github.com上的存储库 我正在成功加载repo列表并将其呈现给NSMenuItem对象。现在,我尝试在列表顶部添加一个搜索栏,并根据搜索短语重新呈现项目 我的问题是: 在菜单中显示搜索栏的最佳方法是什么? 是否有搜索/筛选NSMenuItems的标准方法? 我是否应该重新呈现整个菜单调用。removeAllItems并动态添加新项?或者我应

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

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

我的问题是:

在菜单中显示搜索栏的最佳方法是什么? 是否有搜索/筛选NSMenuItems的标准方法? 我是否应该重新呈现整个菜单调用。removeAllItems并动态添加新项?或者我应该有两个静态菜单?我这样问是因为当用户搜索和不搜索时,布局(如NSMenuItems)会有所不同。
我使用的是Swift 3和Xcode 8.3。谢谢

经过几个月的努力,我终于明白了

在菜单中显示搜索栏的最佳方法是什么

您可以将NSMenuItem添加到NSMenuItem菜单中,并将其视图设置为CustomView searchItem。view=searchView,将searchItem和searchView从情节提要拖到控制器中,以连接它们

是否有搜索/筛选NSMenuItems的标准方法

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

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

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


没有特别的内置功能来过滤菜单。所以我会尝试删除AllItems并根据需要添加它们。谢谢@catlan,我会这么做的!