可可设计:如何在NSCollectionView中突出显示员工的当前部门?

| 我有这个核心数据支持的数据库,其中包含许多员工示例中的条目: 员工可以属于部门。一个部门有很多员工。 我有一个带有所有员工的NSTableView(由NSArrayController支持)。我有一个NSCollectionView(由设置为selection.possibleDepartments的NSArrayController支持)向我显示所选雇员的可能部门。
*DDEmployee               
 name
 image
 -----
 possibleDepartments <<------ 
 selectedDepartment <<--     |
                        |    |
*DDDepartment           |    |
 name                   |    |
 -----                  |    |
 employees          <---     |
 possibleEmployees <<--------
我想强调一下员工当前所在的部门 简单吧? 我怎么知道当前选择的部门是什么?我创建了具有\“-(BOOL)isThisTheSelectedDepartment \”的部门类(DDDepartment)的类别。在此函数中,我调用应用程序委托给我主阵列控制器。主阵列控制器为我提供了选定的员工。我问选择的雇员这是他的部门。 图像很少,其隐藏属性绑定到presentationObject.isThisTheSelectedDepartment并取反。这不会更新NSCollectionView(显然是:P) 有没有办法用绑定来做到这一点? 谢谢     
已邀请:
如果要使用绑定,可以将NSObjectController添加到笔尖。然后在对象控制器上,使用键路径@ \“ selectedDepartment \”将其内容绑定到雇员数组控制器中的选择。该对象控制器将始终包含所选员工的部门。 对于DDDepartment,向其添加BOOL \“ isSelected \”属性。 创建NSObjectController的子类。将您在第1部分中创建的NSObjectController设置为具有其类的子类。现在在子类中重写-(void)setContent:(id)content为:
- (void)setContent:(id)content
{
   [[self content] setIsSelected:NO];  // clear the flag on the current selection
   [content setIsSelected:YES];  // set the flag on the new selection

   [super setContent:content];
}
最后,更改隐藏绑定以绑定到isSelected属性而不是isThisTheSelectedDepartment方法。这应该为您做好一切准备,并在您选择员工或更改员工部门时使部门选择发生变化。     

要回复问题请先登录注册