我正在尝试使用 NSTableView 创建一个层次结构,就像在 finder 中具有文件夹的层次结构(您在其中选择一个文件夹,下一列显示该文件夹中的项目)。但是,我对 mac 开发还很陌生,我不确定如何去做。我在想这可能与 ArrayController 上的 filterPredicates 有关,但由于我不知道如何使用数组控制器来完成它,所以我尝试手动进行。
我通过循环遍历 arrayController.arrangedObjects 来显示所有 entitySubjects,并且仅当它不存在时才将它们添加到数组中。然后我将它们显示在第一列中。然后,我希望在这些 entitySubjects 的第一列中进行选择,以显示具有相同属性的所有实体。即选择“Location”,所有以“Location”为entity.entitySubject的实体都显示在下一列。然而,我正在努力做最后一点,我想得越多,这些选择听起来就越像是要通过绑定来完成的事情。不过,我对绑定并不精通。
这是我在第一列中得到的:
-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSArray *sortedArray = [listOfSubjects sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
if ([tableColumn.identifier isEqualToString:@"SubjectList"]) {
return [sortedArray objectAtIndex:row];
}
else return nil;
}
有人可以提供任何建议吗?
谢谢,
迈克