Как сохранить последний элемент дерева NSOutlineView в большей части нижней части Боковой панели?

Можно ли уточнить проблему?

Предположение, что Вы используете hashmap для отображения некоторых дополнительных данных на определенные векторы, Вы могли просто использовать XOR двоичных представлений компонентов (если это возможно на Вашем предпочтительном языке). Тогда используйте столько LSBs (для сокращения коллизий), сколько Вам нужно для карты хеша. Это, конечно, имело бы свойство, что два равных (по сравнению с плавающей точкой) векторы не могли бы иметь того же хеша (например, плавающая точка IEEE 0 равняется-0, но у них есть другой знаковый бит).

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

5
задан Vadim 1 November 2009 в 13:35
поделиться

2 ответа

Я решил жестко закодировать решение, добавив 8 пикселей в высоту для каждого корневого элемента в стиле группы. Итак, код выглядит так:

- (CGFloat)outlineView:(NSOutlineView *)ov heightOfRowByItem:(id)item;
{
    if (![item isSpacer]) return [ov rowHeight];

    static const CGFloat ADDITIONAL_SPACE = 8.0f;
    NSUInteger numberOfRootGroups = 2;
    CGFloat heightOfRows = [ov rowHeight] * ([ov rowForItem:item] + 1) 
        + ADDITIONAL_SPACE * numberOfRootGroups;
    CGFloat heightOfSidebar = [[ov superview] frame].size.height;
    return MAX(0.0f, heightOfSidebar - heightOfRows);
}

Спасибо всем за поддержку!

1
ответ дан 15 December 2019 в 01:07
поделиться

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

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

3
ответ дан 15 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: