1

私はまだココアについて学ばなければならないことがたくさんあるので、ここで明らかなことを見逃しているかもしれません. 現在のサブビューを置き換える nssplitview に表示したいカスタム ビューがあります。

MessageView.xib ファイルと、NSView をサブクラス化する MessageView .h/.m があります。Xcode 4 のビルトイン GUI ビルダーを使用して、メイン ウィンドウ (nssplitview を含むウィンドウ) のカスタム ビュー インスタンスを作成しました。ウィンドウのコントローラーに MessageView のこのインスタンスへのアウトレットを作成しました。

ウィンドウのコントローラーで、分割ビューのサブビューを交換したい場合、これを実行します

 [splitView replaceSubview:[[splitView subviews] objectAtIndex:1] with:viewMessage];

viewMessage は MessageView へのアウトレットです。

このコードを実行すると、そのサブビューの表示が空白に変わります。カスタム ビューに問題があるのか​​、サイズの問題があるのか​​ わかりません。ビューを分割画面ビューに合わせるために必要なことはありますか、それともカスタム ビューが正しく表示されないだけですか? Xcode 4 でカスタム サブビューを作成するチュートリアルを見つけるのに苦労したので、何か問題があるかどうかはわかりません。カスタム ビューには、ラベルとテキスト フィールドが含まれているだけです。

4

1 に答える 1

3

通常、NSSplitView のサブビューを独自のものに置き換える必要はありません。代わりに、独自のカスタム ビューを、仕切りの両側にある既定のサブビューの子ビューとして追加します。を使用してコードでこれを行うことができますがaddSubview:、Xcode で Interface Builder を使用する方がおそらく簡単です。「カスタム ビュー」を分割ビューにドラッグし、Identity Inspector の [カスタム クラス] で、クラスをカスタム NSView サブクラスの名前に変更します。

ここに画像の説明を入力

デフォルトの NSSplitView サブビューを独自のクラスに置き換える必要が本当にある場合は、Interface Builder で同じ方法を使用して、デフォルトのサブビュー自体を選択し、インスペクタでクラスを変更します。これはすべての AppKit クラスで機能するわけではありませんが、NSSplitView では機能する可能性があります。

于 2012-01-29T23:22:40.180 に答える