gpt4 book ai didi

cocoa - 使用代码将 NSRect 居中

转载 作者:行者123 更新时间:2023-12-03 16:27:46 26 4
gpt4 key购买 nike

嘿大家,我正在处理一个项目,我注意到我在某个 x, y 坐标处绘制的 NSRect(该坐标将是我正在处理的分辨率的中心)不是中心,如果分辨率发生变化。我明白这一切是如何运作的。

问题是我的项目将以多种分辨率显示,有谁知道是否有可能的解决方案可以将 NSrect 居中,无论屏幕处于哪个方面或分辨率。我将我的类声明为具有自定义绘图的 NSPanel 。关于可能的解决方案的任何想法都会有所帮助。谢谢大家。

这是NSRect的x、y、宽度、高度

NSRect windowFrame = NSMakeRect(400, 500, 500, 100);

然后

window = [[Mainbox alloc] initWithContentRect:windowFrame 
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];

最佳答案

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

但是,您不需要这样做。

在订购之前向您的窗口发送一条 center 消息。它会适本地居中居中。

您可能希望使用起始于 0,0 的起始矩形而不是某个任意点来初始化窗口,以确保,如果有主菜单屏幕,那么窗口将认为自己所在的屏幕.

关于cocoa - 使用代码将 NSRect 居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3464550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com