objective-c - 自定义全屏 NSWindow 中奇怪的大小调整?

标签 objective-c cocoa subclass nsview nswindow

我有一个自定义子类 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/

相关文章:

objective-c - 我可以创建自己的内存管理来处理 Cocoa 对象吗

objective-c - 如何限制 NSLog 中的 NSArray 输出

java - 将子类对象存储为父类(super class)并稍后检索子类

iphone - UIViewController - 无法成为第一响应者

iphone - NSUserdefaults 持久化

ios - 滑动时更改 UIslider 缩略图

ios - 对象 C : Can't inherit public property from parent class in child class

objective-c - 如何将数据解析为数组或字典

python - 一些 Numpy 函数返回 ndarray 而不是我的子类

hibernate - 子类中的 Nhibernate/hibernate 鉴别器