1

次のようにCPViewで同じように、CPWindow(具体的にはCPPanel)を中央に配置し、自動サイズ設定することに興味があります。

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

ただし、CPWindowsにはこれらの同じメソッドがないようです。

そして、私たちがそれに取り組んでいる間、CPPanelがドラッグされないようにするにはどうすればよいですか?そのようなことさえ可能ですか?

ありがとう。

4

2 に答える 2

4

CPWindow(およびCPPanel)にはcenterメソッドがあります。

[aWindowセンター];

于 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 に答える