Pergunta

Estou redimensionando programaticamente meu NSWIDOW contendo um NSOPENGLVIEW. A janela redimensiona, o NSOPENglView está lidando com a multa de redimensionamento, mas a barra de título da NSWIDOW fica completamente branco. No entanto, os botões (minimize, ...) podem ser clicados, você também não pode vê -los.

O redimensionamento ocorre usando o seguinte código no controlador do Windows. O método é chamado no encadeamento principal.

-(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];
    }
}

Qual poderia ser o motivo de que a barra de título fica branca e não se puxa novamente? Você pode dizer à barra de título para se desenhar como uma solução alternativa?

obrigada

Foi útil?

Solução

Parece que você tornou seu OpenGlView muito grande. Quando você envia [self titleBarHeight], o que é self? Este código está em uma subclasse de janela ou outra coisa?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top