如何在NSOutlineView中为每一行绘制不同的自定义数据单元格?

时间:2012-09-20 22:57:57

标签: objective-c cocoa

我为大纲视图单元格设置了仅为1列的基于单元格的体系结构的大纲视图。我以两种方式配置了单元格:

  • 在Nib文件中,通过将单元格的类类型设置为MyCustom Cell。
  • 通过代码,通过使用方法在委托类中设置Cell:       - (NSCell *)outlineView:(NSOutlineView *)outlineView dataCellForTableColumn:(NSTableColumn *)tableColumn item:(id)item

我在每个单元格上都设置了通知,当我从某个地方发布通知时,我希望单元格相应地执行通知。在设置代码时,一切看起来都正确,但是当我运行代码时,通知只会添加一行。它应该已添加到每一行,因为我的大纲视图中有很多行。

这就是我在NSCell子类中设置通知观察的方式:

- (id)init {
   if ((self = [super init])) {
      [[NSNotificationCenter defaultCenter] removeObserver:self
                  name:MyNotification object:nil];
      [[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(textDidChange:) name:MyNotification object:nil];
   } 
   return self;
}

 - (void)textDidChange:(NSNotification*)aNotification {
     NSDictionary *userInfo = [aNotification userInfo];
     NSString *searchString = [userInfo objectForKey:@"searchText"];
     if (searchString) {
      // Do something here 
     }
 }

在其他课程中,我发帖MyNotification

有人可以帮我解决我的实施中的错误吗?

提前致谢, RKS

0 个答案:

没有答案