Чтение события изменения размера NSWindow - PullRequest
9 голосов
/ 11 июля 2011

Мне было интересно, если кто-нибудь знает, как мне читать, когда NSWindow изменяется размер?Давайте представим, что у меня есть кнопка в пустом окне (кроме кнопки), затем пользователь изменяет размеры окна из правого нижнего угла, теперь я должен сделать так, чтобы кнопка также изменяла размеры при изменении размера окна.Я знаю, как изменить размер кнопки, и я знаю, как изменить размер окна, и я знаю много вещей, но я не знаю, как получить уведомление, когда пользователь изменяет размер окна, какие-либо советы?

Ответы [ 3 ]

10 голосов
/ 12 июля 2011

Можете ли вы использовать ‑windowDidResize: метод делегата?

4 голосов
/ 31 мая 2014

в пробуждении от пера вашего файла .m напишите

    [Notification addObserver:self selector:@selector(screenResize) name:NSWindowDidResizeNotification object:nil];

и создайте метод сейчас

(void)screenResize
{
    NSRect rect = Preloader.frame;
    rect = NSMakeRect(self.view.frame.origin.x+self.view.frame.size.width/2, self.view.frame.origin.y+self.view.frame.size.height/2, Preloader.frame.size.width, Preloader.frame.size.height);
    Preloader.frame = rect;
    NSLog(@"X = %f, Y = %f, W = %f, H= %f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
}

, а когда вы выйдете из этого класса, напишите

    [[NSNotificationCenter defaultCenter] removeObserver:self name:NSWindowDidResizeNotification object:nil];
0 голосов
/ 02 января 2014

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

...