在NSTreeController's arrangedObjects 文档中,它写道:
此属性的值表示包含树控制器排序的内容对象的代理根树节点。代理对象响应子消息和子代消息(at:)。使用键值观察可以观察到此属性。
但是在下面的代码中,if永远不会击中它的身体。
#import "NSTreeController+RootNodes_m.h"
@implementation NSTreeController (RootNodes_m)
- (NSArray *) rootNodes {
NSObject * arranged = self.arrangedObjects;
if ([arranged respondsToSelector: @selector(children)]) {
return [arranged performSelector:@selector(children)];
}
return nil;
}
@end我编写了这个Obj类别,因为在我的Swift项目中,当我使用来自这个问题的"hack“时,我无法打开”整个模块优化“。所以我尝试添加这个类别,这使我的结果更加“糟糕”。
发布于 2017-02-05 16:54:06
当您使用Objective时,您应该查看目标-C版本的文档。链接到的页面在右上角有一个语言选择器。
在目标-C文档中,您会发现代理响应于-childNodes,而不是-children。
https://stackoverflow.com/questions/42053285
复制相似问题