Как центрировать CPWindow в капучино - PullRequest
1 голос
/ 18 февраля 2011

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

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

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

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

Спасибо.

Ответы [ 2 ]

4 голосов
/ 18 февраля 2011

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

[aWindow center];

3 голосов
/ 18 февраля 2011

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

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.

...