Как центрировать окно CPWindow в капучино
Я заинтересован в том, чтобы окно CPWindow (в частности, CPPanel) было центрировано и автоматически масштабировано так же, как вы могли бы сделать то же самое для CPView следующим образом:
[view setAutoresizingMask:CPViewMinXMargin | CPViewMaxXMargin | CPViewMinYMargin | CPViewMaxYMargin];
[view setCenter:[contentView center]];
Однако у CPWindows, похоже, нет тех же методов.
И пока мы занимаемся этим, как вы можете предотвратить перетаскивание CPPanel? Это вообще возможно?
Благодарю.
2 ответа
Для окна нет автоматического изменения размера. Вы можете центрировать окно или панель в окне браузера, просто поместив их в центр доступного размера, используя такой код:
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
маска.