2010-08-25 3 views
5

я следующий код в изолированном тест какао приложение:NSTextView внутри NSScrollView не прокручивается :(

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    NSView *contentView = [window contentView]; 

    NSTextStorage *textStorage = [NSTextStorage new]; 
    NSLayoutManager *layoutManager = [NSLayoutManager new]; 
    NSTextContainer *textContainer = [NSTextContainer new]; 

    [textContainer setHeightTracksTextView:YES]; 
    [textContainer setWidthTracksTextView:YES]; 
    [textStorage addLayoutManager:layoutManager]; 
    [layoutManager addTextContainer:textContainer]; 

    NSScrollView *scrollView = [[NSScrollView alloc] initWithFrame:[contentView bounds]]; 
    [scrollView setHasVerticalScroller:YES]; 
    [scrollView setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable]; 
    [scrollView setBorderType:NSNoBorder]; 

    NSRect textFrame; 
    textFrame.origin = NSZeroPoint; 
    textFrame.size = [NSScrollView contentSizeForFrameSize:[scrollView frame].size hasHorizontalScroller:NO hasVerticalScroller:YES borderType:NSNoBorder]; 

    NSTextView *textView = [[[NSTextView alloc] initWithFrame:textFrame textContainer:textContainer] autorelease]; 
    [textView setAutoresizingMask:NSViewWidthSizable]; 

    [scrollView setDocumentView:textView]; 

    [contentView addSubview:scrollView]; 
} 

Я пытаюсь настроить всю иерархию объектов, участвующих (в том числе текстовых системных объектов) в комбинации NSTextView + NSScrollView, чтобы увидеть, как все это работает. Однако, когда я запускаю это и начинаю добавлять кучу строк в текстовое представление, он не прокручивается, когда текст становится длиннее, чем вид Высокий. Как будто NSScrollView и NSTextView не знают друг о друге. Какие связи мне не хватает, чтобы получить все здесь, чтобы общаться правильно?

EDIT: Да, это пропуская и уродливая. :) Это было написано, чтобы попытаться определить, что здесь происходит, а не производственный код или что-то, что я буду использовать напрямую. Promise.

ответ

4

Вы пробовали играть с -setHorizontallyResizable: и -setVerticallyResizable:?

+0

Действительно, я этого не сделал. И, похоже, это был ответ. :) Благодаря! – Sean

+0

Это и -setHeightTracksTextView: должно быть НЕТ. – Sean

+0

Я * знал * Я забыл один, но не успел найти исчерпывающий поиск. :-) –

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

  • Нет связанных вопросов^_^