Изменение длины NSScroller - PullRequest
       59

Изменение длины NSScroller

3 голосов
/ 16 августа 2011

Я использую NSScrollView в своем приложении Какао и хочу настроить длину горизонтальной прокрутки.Содержимое вида прокрутки разбито на две основные области: область фиксированной ширины слева и область динамической ширины справа.Левая область прокручивается только вертикально - она ​​остается фиксированной с левой стороны вида, когда пользователь прокручивает влево и вправо.Вот скриншот прокручиваемого вида:

http://jarodlong.com/dropbox/nsscroller_issue.png

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

Есть ли способ сделать это без создания подкласса NSScrollView?Я действительно предпочел бы не иметь подкласса, но если это необходимо, на что мне обратить внимание при этом?

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

Ответы [ 2 ]

4 голосов
/ 16 августа 2011

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

Хорошо, я проверил с другом, и оказалось, что на Lion у вас все еще есть NSScroller экземпляров вNSScrollview, хотя они нарисованы на поверхности GL.Не проверено, но что-то вроде этого должно сработать:

@implementation MyScrollView : NSScrollView

- (void) tile
{
[super tile];
id scroller = [self horizontalScroller];
NSRect scrollerRect = [scroller frame];
   // adjust scrollerRect as you want to here
[scroller setFrame:scrollerRect];
}
1 голос
/ 16 августа 2011

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

...