我有一个NSOutlineView由NSTreeController.
此外,还有一个用于向大纲视图添加新元素的按钮。我将按钮的标志绑定enabled到树控制器的canInsert属性。
我只想允许向大纲视图添加最多 5 个元素。之后,canInsert应该返回NO。
我创建了自己的子类NSTreeController并覆盖canInsert了,但是按钮的启用状态没有改变,因为它没有意识到添加元素时树控制器发生了变化。
我还实现了:keyPathsForValuesAffectingCanInsert并尝试返回各种属性,例如content, arrangedObjects,但这里没有运气。
@implementation ILCustomTreeController
- (BOOL)canInsert
{
return [[self arrangedObjects] count] < 5;
}
+ (NSSet *)keyPathsForValuesAffectingCanInsert
{
return [NSSet setWithObject:@"content"]; // I also tried 'arrangedObjects'
}
@end