我正在使用基于视图的表,我想在单元格视图中为元素创建一个插座。我无法通过连接来获得连接...它总是nil
。
具体来说,我在表格单元格中有一个NSProgressIndicator
,并希望在代码中对其进行操作。
这是我到目前为止所拥有的:
我创建了一个NSTableView
的子类,其中包含相应的outlet属性:
@interface MyTableCellView : NSTableCellView
@property IBOutlet NSProgressIndicator *myProgressIndicator;
@end
@implementation MyTableCellView
-(void)awakeFromNib
{
// _myProgressIndicator is nil!
}
@end
我已经在笔尖中设置了自定义类。现有的NSTableCellView
已通过下拉列表替换为MyTableCellView
。
此时,有些观察:
如果我 Ctrl +单击并拖动进度指示器以连接此插座,则不显示。
同样,如果我尝试 Ctrl +使用助理编辑器单击并拖动进度指示器,我只能通过绑定连接到属性。它不承认这是一个有效的出路。
然而,此插座显示在侧栏上,并显示不存在的警告:
我知道正在使用MyTableCellView
。 awakeFromNib
上的断点确认了这一点,并确认_myProgressIndicator
为nil
。
这是一个沙箱项目,仅比我所描述的要多。
那么,如何从代码中访问此进度指示器?
答案 0 :(得分:0)
我不相信你应该这样做;代替:
reloadData
(或更好reloadDataForRowIndexes:columnIndexes:
)。因此,您只需要一个表视图的插座来执行此操作,并且应该在表视图委托和/或数据源方法中对表视图的单元对象进行任何修改。
答案 1 :(得分:0)
如问题中所述,在Interface Builder中连接插座的常用方法不起作用(可能在最新版本的Xcode中修复,我仍然使用早于6的版本)。无论如何,它确实通过Connections Inspector工作。