在自定义全屏NSWindow中奇怪的大小调整?

时间:2011-03-03 14:45:31

标签: objective-c cocoa subclass nsview nswindow

我有一个自定义子类的NSWindow,它被制作成一个带有NSBordelessWindowMask的全屏无边框窗口。它工作得很好,据我所知,窗户本身没有问题或任何奇怪的事情。

我想弄清楚为什么上述窗口中的自定义子类NSView正在以奇怪的方式重新编码为setFrame:request。而不是简单地以请求,因为他们,似乎他们正在经历某种形式的变化 - 例如,设置x坐标25和宽度800不把视图的右边缘在825正如人们所预料。相反,宽度/高度随着x和y坐标一起增长,即使它们在[view frame] .size.width询问NSLog时报告正确的数字。

大小调整掩码应该不是问题,因为我已完全禁用它们并使用多种不同的配置获得相同的结果。

还有其他人遇到过这种行为吗?

1 个答案:

答案 0 :(得分:0)

如果没有看到您用于创建窗口/视图的代码,则很难知道可能导致此问题的原因。也就是说,如果你的目标是后来的Leopard,那么有一种内置的方法可以让视图全屏显示,这可能有所帮助。 NSView上的方法是enterFullScreenMode:withOptions:。如果您希望整个窗口全屏显示,可以在窗口的contentView上调用它。这可能无法解决您的错误,但它应该至少简化一些事情。