使用代码将NSRect居中

Kyl*_*yle 2 cocoa

嘿,我有我工作的一个项目,我注意到我的NSRect,我在某倍的拉伸,y坐标将是我工作的决议的中心,是不是如果分辨率变化中心.我明白这一切是如何运作的.

问题是,我的项目将被显示在多种分辨率没有人知道一个可能的解决方案,无论屏幕是在什么方面或者分辨率居中的NSRect的.我必须声明为具有自定义绘制NSPanels我的班.关于可能解决方案的任何想法都会有所帮助.谢谢大家.

这是NSRect x,y,宽度,高度

NSRect windowFrame = NSMakeRect(400, 500, 500, 100);
Run Code Online (Sandbox Code Playgroud)

然后

window = [[Mainbox alloc] initWithContentRect:windowFrame 
                                          styleMask:NSBorderlessWindowMask 
                                            backing:NSBackingStoreBuffered 
                                              defer:NO];
Run Code Online (Sandbox Code Playgroud)

Pet*_*sey 5

要将一个矩形置于另一个矩形中心,将内部矩形的原点设置为((外部矩形的原点加上外部矩形的一半)减去内部矩形的一半).

但是,你不需要这样做.

center在您订购之前向您的窗口发送消息.它将以适当的方式集中自身HIG.

您可能希望使用始于0,0而不是某个任意点的起始rect来初始化窗口,以确保如果有主菜单屏幕,则窗口将认为自己处于打开状态.