Как центрировать окно CPWindow в капучино

Я заинтересован в том, чтобы окно CPWindow (в частности, CPPanel) было центрировано и автоматически масштабировано так же, как вы могли бы сделать то же самое для CPView следующим образом:

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

Однако у CPWindows, похоже, нет тех же методов.

И пока мы занимаемся этим, как вы можете предотвратить перетаскивание CPPanel? Это вообще возможно?

Благодарю.

2 ответа

Решение

CPWindow (и CPPanel) имеют метод центра.

[Центр окна];

Для окна нет автоматического изменения размера. Вы можете центрировать окно или панель в окне браузера, просто поместив их в центр доступного размера, используя такой код:

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 маска.

Другие вопросы по тегам