2013-06-29 15 views
0

我附加了Mac Os X功能的图像并尝试复制它。主要是'搜索'功能Mac Os X创建OS X搜索过滤器面板

特别是如何通过按(+)按钮添加更多标准来缩小搜索结果范围?

使用的XCode & Interface Builder中,什么是去复制这是如何工作的最好方法?

我提出的计划:

  1. 创建NSTableView(查看基于表)与 '2列'。一个用于包含内容,另一个用于(+)和(-)按钮。标题将被删除,并在scrollView上移除滚动条。

  2. 创建NSTableViewCell &​​它来访问它的控制与IBOutlets & IBActions。把它放在''列中。

  3. 填充子类NSTableViewCellPopUpControl和相应的其他元素。

  4. 填充柱 '' 与(+)&(-)按钮,以及子类该列NSTableViewCell以及获得对IBOutlets & IBActions为控件的访问。

这是我的起点,我会尝试上传编辑这很快与我工作的一个示例项目。任何帮助表示赞赏!

寻找您的想法和意见,并在这方面的任何帮助。 enter image description here

回答

4

而不是重新发明轮子,为什么不使用NSPredicateEditor

这是一个内置于Cocoa自OS X 10.5之后的控件,专为此而设计。

+1

只是想发布+1;)[这里](https://developer.apple.com/library/mac/#samplecode/PhotoSearch/Introduction/Intro.html#//apple_ref/doc/uid/DTS10003994 )是一些应该帮助的源代码。 – HAS

+0

我试图检查源代码,但我得到以下错误(代码签名错误:身份'Mac开发人员'不匹配您的钥匙串中的任何有效,未过期的证书/私钥对),任何想法如何解决这个问题? –

+0

我想通了,你点击该项目并关闭“代码签名”选项进行编译。 –

0

请勿使用2列表视图 - 使用基于1列视图的视图,并在视图中使用约束和/或手动布局代码来放置按钮。

此外,该容器应该是一个拆分视图住房2表视图和拆分是由代码管理。

0

我不会在这里使用NSTableView。 NSTableView是一个强大的类。它所做的很多事情 - 管理选择,突出显示所选单元格,滚动,回收已从屏幕滚动的视图 - 在这种情况下没有用处,有些实际上会妨碍您的工作。您使用的唯一真正的“桌面”是布局,您可以通过多种方式轻松获得表格布局。

Maxthon Chan是对的,虽然,你想要一个相当复杂的视图 - 控制器对来处理表中的每一行。这对类抽象出搜索查询的一个子句,并向父控制器提供一个简单的接口,这是一个组装整个查询以准备运行的控制器。对于每一行,你需要

- (MyQueryClause*) getQuery; 

而父控制器跟踪所有活动的条款和处理添加/删除按钮:

- (IBAction) addClause: (id) sender; 
- (IBAction) removeClause: (id) sender;