8

NSSplitView3 ペインの垂直(Mail.app に非常に似ています)を実装したいと考えています。どこから始めればよいかよくわかりません。を実装する必要があるとNSSplitViewDelegate確信していますが、どのメソッドおよび/またはその実装がわかりません。

私が望むレイアウトは次のとおりです。

+----------+------------------+------------------------------------+
|          |                  |                                    |
|          |                  |                                    |
|          |                  |                                    |
|          |                  |                                    |
|  Pane 1  |      Pane 2      |               Pane 3               |
|          |                  |                                    |
|          |                  |                                    |
|          |                  |                                    |
|          |                  |                                    |
|          |                  |                                    |
+----------+------------------+------------------------------------+

各ペインに次の制約を実装したいと考えています。

  • ペイン 1: 最小 140pt。最大:400pt。
  • ペイン 2: 最小 250pt。
  • ペイン 3: 最低 400pt。

どんなポインタでも大歓迎です。

4

4 に答える 4

7

実際、HTH に触発されて Interface Builder で 3 番目の可能性を試してみたところ、見事に機能することがわかりました。特に、1 つのセパレーターを移動しても、分割ビューをネストした場合に簡単に発生する可能性のある意図しない変更が他の場所に行われることはありません。

  • NSSplitViewあなたにウィンドウを追加し、
  • NSViewSplit View の子として (IB のカスタム ビュー) を追加します。最終的に、2 つではなく 3 つのサブビューを持つ分割ビューになります。

IB オブジェクト リストでの表示

NSSplitViewネストされた分割ビューが互いにどのように影響するかに注意する必要がありますが、子として別のものを追加する場合も同じことが機能します。上の画像はインターフェイス ビルダーでどのように表示されるかを示しており、2 番目の画像はシミュレータでの結果を示しています。

結果

于 2013-03-19T11:06:46.787 に答える
1

あなたはこれを解決したと思います。とにかく、2つの方法があります。1つ目は上記の答えのようなもので、必要な場所に分割ビューをドラッグし、コンテナの1つ(分割ビューのサブビュー)内に2番目の分割ビューをドラッグします。ビュー階層は次のようになります

Window 
Window containerview
        Splitview
            Containerview_left | containerview_right
                                    Splitview
                                        Containerview_left | containerview_right

コードを使用する場合は、分割ビューを作成し、それをウィンドウのサブビューとして追加します。次に、[splitview addsubview] を使用して分割ビュー サブビューを作成し、3 つのサブビューを追加すると、分割ビューが 2 つになります。ヒエラルキーが違う。

Window  Window containerview
         Splitview
             Containerview_ind(0)| Containerview_ind(1) | Containerview_ind(2)

つまり、サブビューを見つけたい場合は、それをどのように作成したかを知る必要があります。

HTH

于 2012-08-29T08:47:07.893 に答える