0

アウトライン ビューの行をダブルクリックすると、次のコードを使用して NSPopover が表示される NSOutlineView があります。

-(void)doubleClick:(id)nid{
    NSLog(@"Test double click");
    [_popover showRelativeToRect:[nid bounds] ofView:nid preferredEdge:NSMaxXEdge];
}

コードは正常に動作しますが、アウトライン ビューの垂直方向の高さの中央にポップオーバーを配置します。アウトライン ビューで選択 (ダブルクリック) された行の横にポップアップを表示したいと思います。選択した行の位置を返すためにアウトライン ビューを呼び出すことができますか? ドキュメントでそのような方法を見つけることができなかったようです。明らかに、そのような呼び出しである [nid bounds] を置き換えます。それ以外の場合は、これを回避する方法について他の提案をいただければ幸いです。

4

1 に答える 1

0

NSOutlineViewから継承していることを忘れないでくださいNSTableView。を探してい-frameOfCellAtColumn:row:ます。列はおそらく 0 です。 で取得できる行です-selectedRow

アウトライン ビューがビューベースの場合、行ビュー ( -rowViewAtRow:makeIfNecessary:) とNSZeroRectrect を に渡すこともできる-showRelativeToRect:...ため、行が自動的に追跡されます。

于 2014-08-31T03:30:15.417 に答える