0

NSSplitView 内の仕切りを修正しようとしています。http://www.cocoabuilder.com/archive/cocoa/202611-fixed-width-of-pane-in-nssplitview.htmlでそれがどのように行われるかを見つけました. それがうまくいくことを願っていますが、これをテストすることさえできません.. .

[できれば] 以下のコード行を実行して、SplitView クラスのデリゲートを設定しています。

[self.mySplitView setDelegate:self.mySplitView];

SplitView クラスの実装は、次のようにデリゲートも実装しています。

@interface PanelSplitView : NSSplitView <NSSplitViewDelegate>

Objective-C の実装内には、次のメソッドがあります。

-(void)splitView:(NSSplitView *)sender resizeSubviewsWithOldSize:(NSSize)oldSize
{
    NSLog(@"Resizing SplitView subviews");

    CGFloat dividerThickness = [sender dividerThickness];
    NSRect leftRect  = [[[sender subviews] objectAtIndex:0] frame];
    NSRect rightRect = [[[sender subviews] objectAtIndex:1] frame];
    NSRect newFrame  = [sender frame];

    leftRect.size.height = newFrame.size.height;
    leftRect.origin = NSMakePoint(0, 0);
    rightRect.size.width = newFrame.size.width - leftRect.size.width
- dividerThickness;
    rightRect.size.height = newFrame.size.height;
    rightRect.origin.x = leftRect.size.width + dividerThickness;

    [[[sender subviews] objectAtIndex:0] setFrame:leftRect];
    [[[sender subviews] objectAtIndex:1] setFrame:rightRect];
}

ログ出力がないため、メソッドが呼び出されないことがわかります。View と Delegate を同じクラスに実装することは珍しいかもしれないことは理解していますが、以前に実装したことがあり、これまでのところ毎回機能していました。私が間違ったことを教えてください。

ありがとうございました

4

1 に答える 1