1

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

0 に答える 0