为什么我得到" titlebarViewController不支持此窗口样式"尝试添加标题栏附件视图时出现异常

时间:2015-04-20 07:04:27

标签: macos cocoa nswindow

我正在尝试在应用中添加标题栏配件视图。对于其中一位测试人员,我得到例外:

 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'titlebarViewController not supported for this window style' 

此行发生异常:

[window addTitlebarAccessoryViewController:vc];

任何想法导致它,我可以以某种方式检查代码中的崩溃情况并禁用添加标题栏附件视图,如果出现这种情况?

2 个答案:

答案 0 :(得分:3)

当窗口没有显示标题栏(NSTitledWindowMask == 0)时,会发生异常。因此,请检查以下内容:

NSWindow *window = self.view.window;
if ((window.styleMask &  NSTitledWindowMask) == 0){
    // Ignore if no title bar on window
    return;
}

但我们的代码中还有另一个问题。当应用程序以全屏模式启动时self.view.window返回不同的窗口 - NSToolbarFullScreenWindow,因为视图是另一个标题栏附件视图(工具栏)的一部分,并且在全屏中它有不同的窗口父级。

答案 1 :(得分:0)

在不知道窗口类型和OS X版本的情况下,我无法真正帮助解决异常问题。但是你可以对异常作出反应。

请参阅Apple's documentation for Handling Exception