我有一个自定义子类 NSWindow,它使用 NSBordelessWindowMask 制作成全屏无边框窗口。它工作得很好,据我所知,窗口本身没有任何问题或任何奇怪的地方。
我试图弄清楚为什么上述窗口中的自定义子类 NSView 会以奇怪的方式响应 setFrame: 请求。它们似乎正在经历某种变化,而不是简单地接受请求本身,例如,将 x 坐标设置为 25,将宽度设置为 800 并不会像人们所期望的那样将 View 的右边缘设置为 825 。相反,宽度/高度随着 x 和 y 坐标而增长,即使它们在 [view frame].size.width 使用 NSLog 询问时报告正确的数字。
尺寸 mask 应该不是问题,因为我已完全禁用它们,并通过几种不同的配置获得相同的结果。
还有其他人经历过这种行为吗?
最佳答案
如果没有看到您用来创建窗口/ View 的代码,就很难知道可能导致此问题的原因。也就是说,如果您的目标是 Leopard 或更高版本,有一种内置方法可以使 View 全屏显示,这可能会有所帮助。 NSView 上的方法是 enterFullScreenMode:withOptions:
。如果您希望整个窗口全屏显示,您可以在窗口的 contentView
上调用它。这可能无法修复您的错误,但至少应该简化一些事情。
关于objective-c - 自定义全屏 NSWindow 中奇怪的大小调整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5182225/