在我的OS X应用程序(使用Cocoa)中,我想实现一个像Finder中的搜索字段(参见上面的屏幕截图)。
我正在考虑继承NSSearchField
和NSSearchFieldCell
。后者应负责管理“代币”。我已阅读View Programming Guide,Control and Cell Programming Topics以及NSTokenField[Cell]
,NSSearchField[Cell]
,NSCell
的文档。
我不清楚一些事情:
1)在子类中,如何重用NSSearchFieldCell
可能提供的放大镜图标?图标是NSImage
吗?它有一个动画,我应该学习什么如果我必须自己实现动画?
2)应该使用什么来实现下拉按钮(如示例图像中的“NAME”按钮)。用于对搜索类别(例如“NAME”)和关键字(例如“yh”)进行分组的类别是什么? “NAME”之后的“箭头”是什么?
也欢迎任何书籍,文章或其他资源建议。
类似且相关的问题是Mail like search field with tokens (Mac OS X 10.7)
自Yosemite以来,NSCell的使用已发生变化, How to create a custom themed NSButton without subclassing NSButtonCell? 与该主题相关。单元格将被弃用,因此使用它是不明智的。
答案 0 :(得分:1)
这看起来很有趣。我会考虑子类化NSTextField
并创建一个图像映射到文本条目,您可以将其添加到包含所有搜索约束的leftView
属性。
当您添加图像以描述搜索约束以及放大镜时,您的文本应自动切换,并且应该与您在照片中的内容类似。
祝你好运。