Установка размера nsview - PullRequest
1 голос
/ 02 января 2011

Я работаю над графическим интерфейсом моего приложения.У меня есть основной вид, встроенный в NSScrollView.Его содержимое обновляется, когда пользователь нажимает кнопку.Затем он определяет необходимую высоту для отображения содержимого.Вид не отображается хорошо, много глюков, элементы отображаются дважды ... Я знаю, что проблема в том, что я устанавливаю размер вида с помощью [self setBounds: ...].Вы знаете, как я могу изменить размер вида?Вот код:

CGFloat allHeight= 0.0;
for(int i=0; i < [publications count]; i++) {
        Publication* pub= [publications objectAtIndex:i];
        CGFloat pubHeight= [self heightForTextStorage:[pub statusContent] withWidth:300];
    if (pubHeight < 100.0) 
        pubHeight= 100.0;
    allHeight += pubHeight;
}

if (allHeight > [[self superview] bounds].size.height) {
    NSRect allBounds= self.frame;
    allBounds.size.height= allHeight;
    [self setFrame:allBounds];
}
else {
    NSRect allBounds= [[self superview] bounds];
    [self setFrame:allBounds];
}

Заранее спасибо!

1 Ответ

0 голосов
/ 02 января 2011

Еще раз я нашел решение.Я изменял границы nsview внутри метода drawRect (хотя это было до выполнения какого-либо рисования).Я поместил этот кусок кода в другом месте, и теперь он отлично работает.

...