есть черный фон, который заполняет пространство между видом и окном
Разве вы не можете просто установить цвет фона окна?
Я попытался переопределить аспектное соотношение окна в моем классе документов
В вашем подклассе NSDocument
? Если переопределение -aspectRatio
работает, оно должно быть в подклассе NSWindow
. Тем не менее, вы должны использовать -setAspectRatio:
.
Я также попытался установить соотношение сторон окна после загрузки пера. Это помогло, когда мое приложение не было основано на документах.
Это работает независимо от того, какое окно принадлежит приложению, основанному на документах или без документов.
Я хочу переопределить это, когда пользователь нажимает кнопку Zoom, чтобы перевести приложение в полноэкранный режим
У вас может быть делегат окна, который реализует –windowShouldZoom:toFrame:
, который является частью протокола NSWindowDelegate
.
<Ч />
Поскольку OP разрабатывает приложение на основе документов без пользовательского подкласса NSWindow
или NSWindowController
, реализует:
- (void)windowControllerDidLoadNib:(NSWindowController *)aController
{
[super windowControllerDidLoadNib:aController];
[[aController window] setAspectRatio:(NSSize){600,400}];
}
в подклассе NSDocument
- единственное изменение, необходимое для установки соотношения сторон в проекте на основе шаблона приложения на основе документов в Xcode.
В общем, я бы не советовал иметь подкласс NSDocument
, который отвечает за окна, а также за документы. По моему мнению, лучший дизайн - это иметь подкласс NSDocument
только с документами и создавать подкласс NSWindowController
, который касается только окон - подумайте функциональная сплоченность или единая ответственность принцип .