1

NSSplitViewにNSViewをプログラムで追加しようとしています(カバーするため)。これを実行しようとするたびに、追加のサブビューとしてNSSplitviewに追加されます。誰か助けてもらえますか?

コード:

InfoTrainView *myView = [[[InfoTrainView alloc] initWithFrame: aFrame] autorelease];
[NSBundle loadNibNamed:@"InfoTrainView" owner:myView]; 
[self.windowController.splitViewBase addSubview:myView];
4

1 に答える 1

0

NSSplitViewのスーパービュー(つまり、親)に子として新しいビューを追加する必要があると思います。このようにして、NSSplitViewの兄弟になり、それをカバーできます。現在の方法では、新しいビューが分割ビューの子になり、4つの方法で分割するように設定されます。

NSView* parentView = [self.windowController.splitViewBase superview];
if (parentView)
    [parentView addSubview:myView];

parentView上記は、NSWindow内のデフォルトのNSViewである「コンテンツビュー」を取得するはずです。これは、IBがNSSplitViewを内部に配置したものです。の場合parentView == nil、最初に手動でNSViewをウィンドウに追加してから、NSSplitViewをその中に配置してみてください。

ちなみに、あなたの質問は私自身の質問に答えました-NSSplitView内で分割されたビューにプログラムで追加する方法!ありがとう :)

于 2013-04-27T02:10:02.547 に答える