私の Mac アプリ内で、2 つの NSSplitView をセットアップしてメール スタイルのインターフェイスを作成しました (最初の ScrollView を使用して垂直セパレータを作成し、2 番目を最初のスクロール ビュー内にネストして水平セパレータを作成します)。インターフェイスを説明するために、次の図を作成しました。
代替テキスト http://img96.imageshack.us/img96/1091/setupn.png
セットアップをさらに説明するために、ビュー階層の注釈付きスナップを次に示します。
代替テキスト http://img714.imageshack.us/img714/8153/yayaj.png
私が抱えている問題は、NSSplitView の部分 B と C 内でホストされている 2 つの NSTableView のフレームを取得しようとすると、相対座標を受け取ることです。私が使用しているコードは次のとおりです。
NSRect aTableViewFrame = [aTableView frame];
NSRect bTableViewFrame = [bTableView frame];
NSLog(@"%@ %@", NSStringFromRect(aTableViewFrame), NSStringFromRect(aTableViewFrame));
これが私が見る出力です:
{{0, 0}, {760, 143}} {{0, 0}, {760, 392}}
返された NSRect の値からわかるように、NSTableView の正しい幅と高さが与えられていますが、実際に求めているのは、親の NSSplitView に対する相対的な位置です。もちろん、(多数の) IBOutlets を使用して正しい rect 値を自分で作成することもできますが、私が本当に探しているのは、親の NSSplitView またはそれを含む Window に関連する NSTableViews のフレームを取得する簡単な方法です。