改变ContenView后NSWindow的位置问题

时间:2011-06-16 17:37:14

标签: objective-c xcode4 nsview nswindow

在我的应用程序中,我有一个NSWindow和不同的CustomViews ...... 我的目标只是改变窗口的contenView。 我用一个按钮将主窗口放在屏幕中央,按下按钮后执行以下代码

[mainWindow setFrame:[mainView frame] display:TRUE animate:TRUE];
[mainWindow setContentView:mainView];

这个工作正常但是在调整窗口大小之后是在屏幕的左下角.. 我希望它留在屏幕的中心

当我使用

[mainWindow center];

它将移动到左下角并且在调整大小后跳转到中心..不完全它应该只停留在屏幕中间

1 个答案:

答案 0 :(得分:2)

你的窗户移动到左下角的原因是 [mainWindow setFrame:[mainView frame] display:YES animate:YES]; [mainView frame].originNSZeroPoint,而没有超级视图。如果您希望窗口保持居中,则需要setFrameOrigin:。我建议使用NSMidX()NSMidY()来计算屏幕中心的偏移量。