2011-07-04 5 views
1

次のサンプルのようにNSCellを描画する方法があるかどうかを知りたいと思います。アイデアは、同じ列、3行、タイトルのために十分なスペースを持つ最初のもの、残りの2つの列に収まるようにすることです。分割されたNSCell

TITLE_ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ____
DATA_TITLE_1:DATA_VALUE_1 _ _ _ DATA_TITLE_2:DATA_VALUE_2
DATA_TITLE_3:DATA_VALUE_1 _ _ _ DATA_TITLE_4:DATA_VALUE_2

注:

  • "_ _ _"は3つのスペースになるようにしました(私はそれらを表現する方法はわかりません)。
  • カラムのタイトルと値の長さは異なることに注意してください。

ありがとうございます。

答えて

1

NSCellをサブクラス化すると、フレーム内に必要な数のセルを追加できます。 drawInteriorWithFrameメソッドをオーバーライドしてNSCellを割り当て、セルのフレーム内のどこにでも描画するだけです。

ここでは簡単な例です:

- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView { 
    NSRect modifiedFrame = NSMakeRect(cellFrame.origin.x +10, cellFrame.origin.y +10, cellFrame.size.width -10, cellFrame.size.height -10); 
    NSTextFieldCell *modifiedCell = [[NSTextFieldCell alloc] initTextCell:@"TEST"]; 
    [modifiedCell drawWithFrame:modifiedFrame inView:controlView]; 
    [super drawInteriorWithFrame:cellFrame inView:controlView];  
} 
1

これを行う標準のNSCellはありませんが、NSCellクラスの独自のサブクラスを作成して、これを行うことができます。 Control and Cell Programming Topicsを参照してください。

+0

おかげで、私はそれになります。 – mikywan

関連する問題