Размер 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. И рядом с ним должен быть установлен флажок "Использовать автоматическую компоновку". Снимите это.