2013-11-22 130 views
2

在我的應用程序中,我使用-setStyleMask來更改樣式。可可標題欄問題

我正在使用NSTitledWindowMask標誌來顯示/隱藏標題欄。

我面臨的問題是,當我隱藏窗口的標題欄,並通過在樣式掩碼中設置該窗口使其再次可見時,窗口標題現在不再出現在標題欄中。

在隱藏標題欄之前窗口上的標題在使標題欄可見之後在窗口上不可見。

有什麼我失蹤或這是在可可預期的行爲。

代碼:

void ShowTitlebar(bool pShowTitlebar) 
{ 
     NSUInteger mask = [window styleMask]; 
    if(pShowTitlebar) { 
     mask |= NSTitledWindowMask; 
    } else { 
     mask &= ~NSTitledWindowMask; 
    } 

    [window setStyleMask:mask]; 
} 
+0

顯示您的代碼可能會有所幫助。 –

+0

@ I'L'l:我已經添加了代碼。問題中提到了問題。 – doptimusprime

+0

我相信你必須爲NSWindow子類並重寫'canBecomeKeyWindow'才能工作。 –

回答

1

通話設置窗口StyleMask後setTitle方法。

-(void) ShowTitlebar : (bool) pShowTitlebar 
{ 
    NSUInteger mask = [self.window styleMask]; 
    NSLog(@"mask %lu",mask); 
    if(pShowTitlebar) { 
     mask |= NSTitledWindowMask; 
    } else { 
     mask &= ~NSTitledWindowMask; 
    } 
    [self.window setStyleMask:mask]; 
    [self.window setTitle:@"title"]; 

} 
+0

這就是我已經在做的。有沒有其他的方式來保留標題? – doptimusprime

+0

在實例變量中保留窗口標題self.mytitle = self.window.title; –