Как установить размер NSView программно? - PullRequest
9 голосов
/ 17 декабря 2010

Как программно установить размер NSView, например:

    -(void)awakeFromNib {
        self.frame.size.width   = 1280;   // Does nothing...
        self.frame.size.height  = 800;    // ...neither does this.
        ...

Настройка размера в кончике (Mac OSX) работает нормально, но я хочу сделать это в коде.

Ответы [ 3 ]

17 голосов
/ 17 декабря 2010

Когда вы вызываете self.frame, он возвращает данные в кадре, а не указатель. Поэтому любое изменение результата не отражается в представлении. Чтобы изменить вид, вы должны установить новый кадр после внесения изменений:

- (void)awakeFromNib {
    NSRect f = self.frame;
    f.size.width = 1280;
    f.size.height = 800;
    self.frame = f;
    //...
}
7 голосов
/ 17 декабря 2010

Используйте метод -setFrameSize: или -setFrame:

4 голосов
/ 18 декабря 2010

Чтобы программно настроить размер приложения (именно это я и хотел), вам нужно сделать следующее: -

- (void)awakeFromNib {
    ...
    NSWindow* w = [self window];
    NSRect f;
    f.size.width  = 1280;
    f.size.height = 800;
    [w setFrame:f display:YES];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...