2016-01-06 6 views
1

Я пытаюсь создать простой браузер папки, показывающий древовидную структуру, используя NSOutlineView. Использование monoMac и Xamarin Studio с построителем интерфейса XCode для пользовательского интерфейса.NSOutlineView - как получить горизонтальную полосу прокрутки

Проблема, с которой я столкнулся сейчас, заключается в том, как изменить размер столбца на ширину содержимого и/или как обрезать текст, показанный в столбце.

Первая настройка, которую я пробовал, включает AutoresizesOutlineColumn. Это уменьшает размер столбца до некоторой степени, но как только он встречает имя с дефисами, он только изменяет размер до первого дефиса, и оттуда кажется, что он больше не изменяет размер.

Далее я попытался включить установку столбца для изменения размера в «Авторазмер с таблицей», а ячейка - «обрезать голову», но это тоже не работает, как я ожидал.

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

Скриншот 2 показывает проблему, как вы можете видеть, когда изменяется имя узла обрезается не усеченный и не прокрутки не показан

enter image description here enter image description here

ответ

0

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

К сожалению, я не могу дать вам точный код и синтаксис, так как я не знаком с monomac, но в Objective-C код будет выглядеть следующим образом:

outlineView.enclosingScrollView.hasHorizontalScroller = YES; 

В принципе, вам спросите очертание его охватывающего вида прокрутки, затем вы установите для вида прокрутки горизонтальную полосу прокрутки.

Если вы используете Xcode Interface Builder для создания файлов nib и имеете общие представления в файле nib, вы должны иметь возможность установить свойство «Показать горизонтальный скроллер», чтобы не было необходимости делать это программно во время выполнения ,

0

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

Оказалось, что это была основная ошибка начинающего (я бы подумал).

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

Second - in GetView Я создал экземпляр NSTextField вместо NSTableCellView.

Как только я добавил эти изменения, настройки в виде ячеек, цвета, обрезки и т. Д. Отображаются правильно.

Но я все еще не могу заставить штангу показать, как я хочу. Вид прокрутки устанавливается в автоматическом режиме в IB. Если я включаю AutoResizesOutlineColumn, а затем устанавливаю размер в столбце в IB равным none, отображается полоса прокрутки, но она сохраняет ширину столбца с момента создания окна. Если я установил параметр изменения размера «auto resize with table», то столбец изменит размер, но прокрутка не показывается, когда содержимое ячейки превышает ширину.

Смежные вопросы