我如何进行Apple Finder - >文件信息 - >在MacOSX应用中添加标记功能?

时间:2016-04-06 07:25:28

标签: swift macos cocoa nssearchfield

在我的MacOSX应用程序中,我需要创建类似于Apple自己的东西,在文件的信息屏幕中为文件功能添加标签。现在,我已经创建了一个NSTextField,用户可以在其中键入调用的文本:

func controlTextDidChange(aNotification: NSNotification) 

在这个方法中,我在NSTextField下面直接显示NSTableView。 我有一个数组,其中包含tableview中加载的内容。我没有使用NSSearchField,因为我不想在框内放大图标。设计还要求所选标签成为Apple设计中的小按钮,位于同一文本字段内或直接位于其下方。框架中是否有任何内容可以轻松地完成此任务或任何第三方?我一直在搜索时遇到问题而没有大部分结果试图教我如何为文件创建标签。

我在tableview中拥有所选项目的字符串,然后成为文本字段下方空格中按钮的标题。

本设计的第2部分是删除标签按钮。现在,我选择按钮后将突出显示状态设置为true,然后使用以下方法检测删除键:

override func keyUp(theEvent: NSEvent) {
if theEvent.keyCode == 51 {
  if appDelegate.uploaderController.tagButton.highlighted == true {
    appDelegate.uploaderController.tagButton.hidden = true
  } 
}

如果在点按删除键时突出显示tagButton,则该按钮将被隐藏(可能会切换为已删除)。

同样,如果有人对设计有更好的想法,知道任何内置的,甚至已经完成的,请告诉我!谢谢!

File Tags

1 个答案:

答案 0 :(得分:2)

最佳出发点可能是NSTokenField。这将为您提供自动填充功能(使用该字段下方的一个小下拉菜单)。查看NSTokenFieldDelegate的{​​{1}}。它还可以将标签制作成可以拖动,删除等的小椭圆形物体。

NSTokenField reference