Представления фиксированного размера в NSSplitView

У меня есть NSSplitView, с тремя видами. Я не хочу, чтобы первый вид (слева) был шириной 100,0, и я хочу, чтобы второй (слева) был шириной 250,0. Я также хочу, чтобы ширина этих двух видов оставалась неизменной.

Итак, в applicationDidFinishLoading устанавливается позиция.

[mainSplitView setPosition:100.0 ofDividerAtIndex:0];
[mainSplitView setPosition:350.0 ofDividerAtIndex:1];

Я также установил делегат:

[mainSplitView setDelegate:self];

Наконец, я реализовал следующую часть протокола:

- (NSRect)splitView:(NSSplitView *)splitView effectiveRect:(NSRect)proposedEffectiveRect forDrawnRect:(NSRect)drawnRect ofDividerAtIndex:(NSInteger)dividerIndex
{
    return NSZeroRect;
}

Однако, когда я изменяю размеры всего окна, размеры всех видов меняются. Я только хочу, чтобы третий вид изменил его размер. Что мне нужно, чтобы предотвратить такое поведение?

Нет, я не хочу использовать стороннюю библиотеку.

1 ответ

Решение

Я знаю, это звучит совершенно очевидно, но вы пробовали старые добрые стойки и пружины? Снимите пружины и добавьте распорки к верхней и левой сторонам, и они останутся в верхнем левом углу и не изменят размер.

Другие вопросы по тегам