我正在使用NSOutlineView和NSTreeController的绑定。我试图通过使用NSTreeNode的-parentNode方法确定特定节点的父节点,但是该方法永远不会返回nil,如文档中所示。相反,我必须这样做,以使事情有效。内省是一种黑客攻击。有什么建议?感谢。
NSTreeNode *parentNode = [[[treeController selectedNodes] objectAtIndex:0] parentNode];
LXNode *realParentNode = [parentNode representedObject];
if (parentNode && [realParentNode isKindOfClass:[LXNode class]])
{
//The parent exists
}
else
{
//Parent does not exist.
}
在调试器中显示parentNode如下
> parentNode 0x001a1e50
> NSObject {...}
> _childNodesProxy 0x0
> _representedObject 0x10019f500
> _observationInfo 0x0
> _reserved2 0x0
> _childNodes 0x1020b6d10
> _parentNode 0x0
> _NSTreeNodeFlags {...}