0

NSOpenGLViewを含むNSWindowのサイズをプログラムで変更しています。ウィンドウのサイズが変更され、NSOpenGLViewはサイズ変更を正常に処理しますが、NSWindowのタイトルバーは完全に白になります。ただし、ボタン(最小化、...)はクリックでき、表示もできません。

サイズ変更は、Windowsコントローラーで次のコードを使用して行われます。メソッドはメインスレッドで呼び出されます。

-(void)setHeightAndWithToWindow:(NSArray*)heightWidth{
    int width = [(NSNumber*)[heightWidth objectAtIndex:0] intValue];
    int height = [(NSNumber*)[heightWidth objectAtIndex:1] intValue];
    NSRect rect = NSMakeRect(0, 0, width ,height);
    if([window frame].size.height != (rect.size.height - [self titleBarHeight]) ||
        [window frame].size.width != rect.size.width){ 
        [window setFrame:rect display:false animate:true];
    }
}

タイトルバーが白くなり、再び描画されない理由は何でしょうか。回避策としてそれ自体を描画するようにタイトルバーに指示できますか?

ありがとうございました

4

1 に答える 1

0

OpenGLViewを大きくしすぎたようです。あなたが送るとき[self titleBarHeight]、何selfですか?このコードはウィンドウサブクラスまたは他の何かにありますか?

于 2010-08-08T06:43:06.793 に答える