0

我附上了一张Mac Os X 功能的图片并尝试复制它。主要是Mac Os X的“搜索”功能。

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

使用XCodeInterface Builder,复制其工作原理的最佳方法是什么?

我提出的计划:

  1. 使用“ 2 列”创建NSTableView(基于视图的表)。一个包含内容,一个用于 ( + ) 和 ( - ) 按钮。标题将被删除,并且滚动视图上的滚动条将被删除。

  2. Create NSTableViewCell& it 以使用IBOutletsIBActionsSubClass访问它的控件。把它放在' 1 '列中。

  3. 使用PopUpControl和相应的其他元素 填充子类 NSTableViewCell 。

  4. 使用 ( + ) 和 ( - )的按钮填充列“ 2 ” ,并对该列进行子类化以获得对控件的 IBOutletsIBActions的访问。NSTableViewCell

这是我的起点,我将尝试使用我正在处理的示例项目尽快上传编辑它。任何帮助表示赞赏!

寻找您的想法和意见以及这方面的任何帮助。 在此处输入图像描述

4

3 回答 3

4

与其重新发明轮子,不如使用NSPredicateEditor

这是自 OS X 10.5 以来内置于 Cocoa 中的控件,旨在完成此操作。

于 2013-06-29T17:02:13.913 回答
0

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

此外,容器应该是包含 2 个表视图的拆分视图,并且拆分由代码管理。

于 2013-06-29T13:37:56.317 回答
0

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

不过 Maxthon Chan 是对的,他认为您需要一个相当精细的视图控制器对来处理表格的每一行。这对类抽象出了搜索查询的一个子句,并为父控制器提供了一个简单的接口,该控制器组装了准备运行的整个查询。对于每一行,您需要

 - (MyQueryClause*) getQuery;

而父控制器跟踪所有活动子句并处理添加/删除按钮:

 - (IBAction) addClause: (id) sender;
 - (IBAction) removeClause: (id) sender;
于 2013-06-29T14:54:49.123 回答