Размер NSImageView не соответствует размеру окна

Я просто играю с разработчиком приложений для OSX. Я полностью нуб. Я думал, что это прямо как разработчик приложений для iOS. Но после нескольких дней, похоже, это не так просто.

Вот что я пытаюсь сделать. У меня есть NSWindow. В него я вставляю Image Well (с именованием "lol"). "Image Well" - это NSImageView (без каламбура).

Поэтому я просто хочу, чтобы размер кадра NSImageView изменялся в соответствии с размером NSWindow. Это так просто.

Вот что я сделал, что НЕ работает:

NSImageView как imageView.

напишите метод делегата NSWindowDelegate, метод NSWindow windowDidResize и windowDidResize: и просто измените размер кадра фрейма изображения в представлении изображения в нем. Код: (NSImageView находится в свойстве с именем imageView.)

- (void)windowDidResize:(NSNotification *)notification {

   // NSLog(@"resized");

    NSRect zWindowRect = [[self window]frame];
    NSRect zContentRect = [[self window]contentRectForFrameRect:zWindowRect];

    [self.imageView setFrameSize:NSMakeSize(zContentRect.size.width,
                                            zContentRect.size.height)];

    [self.imageView setNeedsDisplay:YES];


}

Этот метод называется (проверено, что с NSLog()), Тем не менее NSImageView просто остается там с оригинальным размером. Я проверил, что IBOutlet соединение в порядке.

Что дает? Почему не NSImageView изменить размер?

1 ответ

Решение

Хорошо. Это становится привычкой. Отвечая на мой собственный вопрос снова.

Кажется, что это происходит из-за функции "Auto Layout" Interface Builder.

Чтобы это исправить, просто отключите "Auto Layout" в MainMenu.xib. СМОТРИТЕ ЗДЕСЬ ДЛЯ ПОЯСНЕНИЯ

В случае истечения срока действия сайта: просто нажмите MainMenu.xib, затем перейдите на первую вкладку "Файл" на панели "Утилиты" XCode. И рядом с ним должен быть установлен флажок "Использовать автоматическую компоновку". Снимите это.

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