1

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

func controlTextDidChange(aNotification: NSNotification) 

在这个方法中,我在 NSTextField 正下方显示了一个 NSTableView。我有一个数组,其中包含在 tableview 中加载的内容。我没有使用 NSSearchField ,因为我不希望框中的放大图标。设计还要求选择的标签成为像 Apple 设计中的小按钮,或者在同一个文本字段内或直接在下方。框架中是否已经内置了任何东西可以轻松完成此操作或任何第 3 方?如果没有大部分结果试图教我如何为文件创建标签,我一直在搜索时遇到了麻烦。

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

此设计的第二部分是删除标签按钮。Right now, I'm setting highlight status to true when button is selected and then detecting delete key with:

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

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

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

文件标签

4

1 回答 1

2

最好的起点大概是NSTokenField。这将为您提供自动完成功能(使用该字段下方的一个小下拉菜单)。签出NSTokenFieldDelegatetokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:它还将标签制作成可以拖动、删除等的小椭圆形对象。

NSTokenField 参考

于 2016-04-09T23:12:13.047 回答