带条件搜索和检索核心数据的指南
立即解锁
发布时间: 2025-08-21 01:08:31 阅读量: 1 订阅数: 8 


Mac上学习Cocoa:从入门到实践
### 使用条件搜索和检索核心数据
在开发应用程序时,数据的搜索和检索是一个常见的需求。本文将详细介绍如何设置界面元素、输入初始数据、创建搜索窗口,并使用 `NSPredicate` 来限制搜索结果,以实现高效的数据搜索和检索功能。
#### 配置引用部分界面
在 `Show` 框下方为 `Quotes` 重复大部分相同的设置,具体操作步骤如下:
1. 从对象库中拖出一个表格视图和两个按钮,将它们放置在窗口的下半部分,并按之前的方式为按钮命名。
2. 此表格视图保留两列,将其设置为基于视图,并勾选“交替行”复选框,以提高内容可读性。
3. 将左列命名为“Quote Text”,右列命名为“Character”,并调整列宽,为“Quote Text”列留出更多空间。
4. 双击“Quote Text”列中的“Table Cell View”文本,将其改为“Quote”;对“Character”列执行相同操作,将其改为“Character”。
5. 将这三个控件组合到一个框中,并将框命名为“Quote”。
该部分窗口将使用一个 `NSArrayController`,但配置方式与 `Shows` 数组控制器略有不同:
1. 拖出一个控制器,将其命名为“Quotes”。
2. 在属性检查器中,将其模式设置为“Entity Name”,并将实体名称字段设置为 `Quote`。
3. 切换到绑定检查器,打开“Content Set”绑定,在弹出列表中选择“Shows”,在控制器键组合框中选择“selection”,并在模型键路径组合框中输入“quotes”,最后按回车键启用绑定。
4. 将“Managed Object Context”绑定到 `App Delegate`,并将模型键路径设置为“managedObjectContext”。
接下来,将表格视图绑定到 `Quotes` 控制器:
1. 选择表格视图,打开绑定检查器,展开“Table Content”下的“Content”部分,勾选“Bind to”复选框,弹出菜单应显示“Quotes”,使用默认的控制器键“arrangedObjects”。
2. 将“Selection Indexes”绑定到 `Quotes`,并将控制器键设置为“selectionIndexes”。
为了绑定两列,通过对象坞深入表格视图的视图层次结构:
1. 找到“Static Text – Quote”条目,在属性检查器中将其行为更改为可编辑,在绑定检查器中将其值绑定到“Table Cell View”,并将模型键路径设置为“objectValue.quoteText”。
2. 切换到“Static Text – Character”条目,将其模式更改为可编辑,将其绑定到“Table Cell View”,并将模型键路径设置为“objectValue.character”。
最后,连接按钮:
1. 从每个按钮控制拖动到 `Quotes` 控制器,根据需要设置操作(添加或删除)。
2. 将每个按钮的启用绑定绑定到 `Quotes` 控制器上的 `canAdd` 或 `canRemove` 控制器键。
#### 输入初始引用
保存更改并运行应用程序,应用程序将启动并显示数据输入窗口。按照以下步骤输入初始引用:
1. 选择上表格视图下方的“Add”按钮添加一个节目,双击表格视图中突出显示的空间以编辑节目的名称,多次操作以创建多个节目实例。
2. 选择一个节目,在下面的表格中添加一个引用,直接在表格中编辑文本和角色名称。如果引用包含两个或多个角色之间的对话,在“Character”字段中输入所有涉及角色的名称。
3. 添加更多引用,分布在不同的节目中。注意,当选择不同的节目时,引用列表会发生变化。如果退出并重新启动应用程序,之前输入的所有数据将被保存。
如果遇到问题,检查 Xcode 中的调试器日志,查看应用程序是否抛出异常。常见问题包括忽略为数组控制器设置托管对象上下文的绑定,或输入控制器键或模型键路径绑定时拼写错误。
#### 创建引用查找窗口
现在开始为搜索窗口奠定基础,具体操作如下:
1. 在 Xcode 的界面构建器面板中,从对象库中拖出一个新窗口并放置在画布上,选择普通的普通窗口。
2. 选择新窗口,在属性检查器中将其标题设置为“Quote Finder”。该窗口将有两个可见控件:一个表格视图和一个文本视图。表格视图将显示匹配的引用列表,文本视图将显示所选引用的内容。
3. 从对象库中拖出一个表格视图,将其放置在窗口顶部附近。在属性检查器中,将其设置为基于视图,并设置三列,分别命名为“Quote Text”、“Character”和“Show”,并编辑每个字段的文本以反映列名。勾选“Alternating Rows”复选框,以便在搜索返回大量匹配项时提高可读性。调整表格视图的大小以填充窗口宽度。
4. 从对象库中拖出一个文本视图,将其放置在表格视图下方,并将其宽度扩展为与表格视图相同。在属性检查器中,关闭“Editable”和“Rich Text”复选框,将“Find”弹出菜单设置为“Uses Bar”,并勾选“Incremental Searching”复选框,以启用嵌入式搜索栏。
接下来,拖出一个数组控制器,命名为“FoundQuotes”,并进行如下配置:
1. 在属性检查器中,将其模式设置为“Entity Name”,并将实体名称设置为 `Quote`,勾选“Prepares Content”和“Auto Rearrange Content”复选框。
2. 在绑定检查器中,将其“Managed Object Context”绑定到 `App Delegate`,并将模型键路径设置为“managedObjectContext”。
然后,设置用户界面控件(表格视图和文本视图)的绑定:
- **表格视图**:
1. 将“Content”和“Selection Indexes”绑定到 `FoundQuotes` 控制器,将“Content”绑定到“arrangedObjects”控制器键,将“Sele
0
0
复制全文
相关推荐










