如何在表格单元视图中连接插座?

ten*_*our 5 macos cocoa interface-builder nstablecellview

我正在使用基于视图的表,我想在单元格视图中为元素创建一个插座.我无法通过连接来获得连接...它总是如此nil.

具体来说,我有一个NSProgressIndicator表格单元格,并希望在代码中操作它.

这是我到目前为止所拥有的:

我创建了一个子类NSTableView,具有相应的outlet属性:

@interface MyTableCellView : NSTableCellView
@property IBOutlet NSProgressIndicator *myProgressIndicator;
@end

@implementation MyTableCellView
-(void)awakeFromNib
{
    // _myProgressIndicator is nil!
}
@end
Run Code Online (Sandbox Code Playgroud)

我已经在笔尖中设置了自定义类.通过下拉列表NSTableCellView替换现有MyTableCellView的.

在这一点上,一些观察:

  • 如果我Ctrl+单击并拖动进度指示器以连接此插座,则不会显示.在此输入图像描述 在此输入图像描述

  • 同样,如果我尝试Ctrl+单击并使用助理编辑器拖动进度指示器,我只能通过绑定连接到属性.它不承认这是一个有效的出路.在此输入图像描述

  • 然而,这个插座显示在侧栏上,并警告它不存在: 在此输入图像描述

  • 我知道MyTableCellView正在使用.断点awakeFromNib确认了这一点,并确认了这_myProgressIndicator一点nil.

这是一个沙盒项目,仅比我所描述的要多.

那么,如何从代码中访问此进度指示器?

tro*_*foe 2

我不认为你应该这样做;反而:

  1. 修改表视图的数据源使用的模型对象来填充表视图。
  2. 调用表视图reloadData(或更好的reloadDataForRowIndexes:columnIndexes:)。

因此,您应该只需要表视图的出口来执行此操作,并且表视图的单元格对象的任何修改都应该在表视图委托和/或数据源方法中完成。