gpt4 book ai didi

cocoa - 以编程方式创建的窗口居中

转载 作者:行者123 更新时间:2023-12-03 16:05:00 25 4
gpt4 key购买 nike

我一直在使用此处的示例来创建自定义的无标题栏窗口:

Drawing a custom window on Mac OS X

我发现这是我在 Leopard、Snow Leopard 和 Lion 中创建无标题栏窗口的唯一方法,其他方法在 Leopard 或 Lion 上都不起作用。(如果我尝试通过普通 NSWindow 和 IB 调用无标题栏窗口,它将不再在 Leopard 中启动)

到目前为止,这个自定义的无标题栏窗口在任何地方都可以正常工作,但我无法将其居中,只能在 Interface Builder 中进行硬固定位置。

使用 [window center] 将普通 NSWindow *window 实现居中是相当容易的,但我发现没有任何东西可以在这个自定义窗口子类上工作,该窗口不是通过 Interface Builder 从 nib 创建的。

我尝试了 NSWindow 中的一些操作,但似乎没有任何作用。

有什么想法吗?

最佳答案

CGFloat xPos = NSWidth([[window screen] frame])/2 - NSWidth([window frame])/2;
CGFloat yPos = NSHeight([[window screen] frame])/2 - NSHeight([window frame])/2;
[window setFrame:NSMakeRect(xPos, yPos, NSWidth([window frame]), NSHeight([window frame])) display:YES];

这会将其放置在屏幕的文字中心,而不考虑停靠栏和菜单栏占用的空间。如果您想这样做,请将 [[window screen]frame] 更改为 [[window screen]visibleFrame]

关于cocoa - 以编程方式创建的窗口居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5682712/

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