可可标题栏问题

时间:2013-11-22 07:08:28

标签: objective-c macos cocoa

在我的应用程序中,我使用-setStyleMask来更改样式。

我正在使用NSTitledWindowMask标记来显示/隐藏标题栏。

我遇到的问题是,当我隐藏窗口的标题栏并通过在样式掩码中设置它再次使其可见时,窗口的标题现在不再出现在标题栏中。

在隐藏标题栏之前,窗口上的标题意味着在标题栏可见后在窗口上不可见。

是否有我遗漏的东西,或者这是Cocoa中的预期行为。

代码:

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

    [window setStyleMask:mask];
}

1 个答案:

答案 0 :(得分:1)

在设置WindowMask窗口后调用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"];

}