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 {...}