0

私はawakeFromNibでウィンドウを初期化し、ウィンドウのサイズを変更すると、幅と高さが2倍になることを願っています.コードは最初は正しく実行されますが、2回目は2倍のサイズで表示されるので、私がサイズを変更すると、awakeFromNib が機能しないようです。コードは次のとおりです。

-(void)awakeFromNib{
    width = 388.0;
    height = 273.0;
    NSRect rect = window.frame;
    NSSize size;
    size.width = width;
    size.height = height;
    rect.size = size;
    [window setFrame:rect display:YES];    
    [window setDelegate:self];
}
-(NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize{
    float rwidth = [window frame].size.width;
    float rheight = [window frame].size.height;
    if(rwidth<=width*2 && rheight<=height*2){
        NSRect rect = window.frame;
        NSSize size;
        size.width = width*2;
        size.height = height*2;
        rect.size = size;
        [window setFrame:rect display:YES];
        [window setMinSize:[window frame].size];
        [window setMaxSize:[window frame].size];
    }
    return frameSize;
}
4

1 に答える 1

0

コントローラーは、ヘッダー ファイルに NSWindowDelegate プロトコルを実装する必要があります。

// MyController.h

#import <Foundation/Foundation.h>

@interface MyController : NSViewController <NSWindowDelegate>
-(void) awakeFromNib;
-(NSSize) windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize;
@end
于 2013-07-18T16:52:52.777 に答える