我的主要NSWindow包含限制在某个大小范围的UI,否则它可能会被破坏。我使用
将窗口限制为大小范围[myWindow setContentsMaxSize:maxSize] [myWindow setContentsMinSize:minSize]
这适用于用户拖动边或大小框。
当用户按下“全屏”按钮时,Lion会启动
动画如果窗口以最小尺寸启动,则此动画会将其缩小到低于定义的最小尺寸,并且会损坏我的UI而无法修复(用户需要重新启动应用程序)。我的观点是接收setFrameSize:大小不受支持。
我的问题
感谢!
答案 0 :(得分:0)
我还研究了全屏动画行为,以下是它的工作原理:
它还基于拍摄窗口内容的快照,但有一些改进。它在一些控制点上需要几个快照:512,1024,2048等 在我的情况下进入全屏2560x1440,我的400像素宽的窗口拍摄了512像素的快照,然后1024和2560宽的快照。我不知道这种行为对于所有情况都是默认的,但这是我自己调查的结果。
关于设置最小/最大窗口大小的问题:
在Interface Builder中设置的最小窗口大小适合我,但最大限制不适用。我正在研究它,这个记录的方法应该适合你:
将此代码放入您的窗口委托。
static const NSSize kWindowMinSize = {100, 100};
static const NSSize kWindowMaxSize = {100500, 100500};
...
- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize
{
frameSize.width = MAX(kWindowMinSize.width, MIN(kWindowMaxSize.width, frameSize.width));
frameSize.height = MAX(kWindowMinSize.height, MIN(kWindowMaxSize.height, frameSize.height));
return frameSize;
}
希望这会对你有帮助!