1

我有兴趣让 CPWindow(特别是 CPPanel)居中并自动调整大小,就像您可能对 CPView 执行相同操作一样,如下所示:

[view setAutoresizingMask:CPViewMinXMargin | CPViewMaxXMargin | CPViewMinYMargin | CPViewMaxYMargin];   
[view setCenter:[contentView center]];

然而 CPWindows 似乎没有这些相同的方法。

当我们这样做时,您如何防止 CPPanel 被拖来拖去?这样的事情甚至可能吗?

谢谢。

4

2 回答 2

4

CPWindow(和 CPPanel)有一个 center 方法。

[a窗口中心];

于 2011-02-18T03:11:11.997 回答
3

窗口没有自动调整大小。您可以在其浏览器窗口中将窗口或面板居中,只需使用以下代码将其放置在可用大小的中心:

var containerSize = [[aWindow platformWindow] contentBounds].size,
    aSize = [aWindow frame].size,
    targetFrame = CGRectMake((containerSize.width - aSize.width) / 2.0, (containerSize.height - aSize.height) / 2.0, aSize.width, aSize.height);

[aWindow setFrame:targetFrame display:YES animate:NO];

从那里您可以更新它以在平台窗口调整大小时保持在中心。收听CPWindowDidResizeNotification由 发送的通知[aWindow platformWindow]

我想不出一种简单的方法来防止窗口被拖动而不是通过使用CPBorderlessWindowMask掩码创建它来移除其标题栏。

于 2011-02-18T01:31:34.733 回答