我在项目中拥有一个功能完善的基于视图的
NSOutlineView
,并有适当设置的数据源。现在我想允许用户更改某些条目。因此,我在IB中使NSTextField
可编辑。对于基于单元格的NSOutlineView
,您可以使用委托方法outlineView:setObjectValue:forTableColumn:byItem:
。然而,如NSOutlineViewData
协议的头文件所述,这种方法不适用于基于视图的NSOutlineView
:
/* 基于视图的OutlineView:此方法不适用。 */
(void)outlineView:(NSOutlineView *)outlineView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn byItem:(id)item;
因此,我搜索了另一种委托方法,并找到了outlineView:shouldEditTableColumn:item:
。但是该委托方法未触发。可能是因为我没有编辑单元格。
所以我的问题是:除了为每个NSTextField
都进行委托之外,是否还有其他方法可以注意到行已更改?