`NSTreeController` 的 `arrangedObjects` 不响应 `children`
`NSTreeController`'s `arrangedObjects` doesn't respond to `children`
在 NSTreeController
的 arrangedObjects
doc 中说:
The value of this property represents a proxy root tree node
containing the tree controller’s sorted content objects. The proxy
object responds to children and descendant(at:) messages. This
property is observable using key-value observing.
但在下面的代码中,if
永远不会达到它的 body。
#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-C 类别是因为在我的 Swift 项目中,当我使用 "hack" 来自。所以我尝试添加这个类别,结果甚至 "worse"。
当您使用 Objective-C 时,您应该查看 Objective-C version of the docs。您链接到的页面有一个朝向 top-right.
的语言选择器
在 Objective-C 文档中,您会发现代理响应 -childNodes
,而不是 -children
。
在 NSTreeController
的 arrangedObjects
doc 中说:
The value of this property represents a proxy root tree node containing the tree controller’s sorted content objects. The proxy object responds to children and descendant(at:) messages. This property is observable using key-value observing.
但在下面的代码中,if
永远不会达到它的 body。
#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-C 类别是因为在我的 Swift 项目中,当我使用 "hack" 来自
当您使用 Objective-C 时,您应该查看 Objective-C version of the docs。您链接到的页面有一个朝向 top-right.
的语言选择器在 Objective-C 文档中,您会发现代理响应 -childNodes
,而不是 -children
。