Установка размера nsview

Я работаю над графическим интерфейсом своего приложения. У меня есть основное представление, встроенное в 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];
}

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


person Community    schedule 02.01.2011    source источник


Ответы (1)


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

person Community    schedule 02.01.2011