2010-08-25 17 views
5

:NSTextView kaydırma değil :(Ben tek başına bir Kakao testi uygulamasında aşağıdaki kod var

- (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]; 
} 

ben dahil nesnelerin bütün hiyerarşi kurmaya çalışıyorum (dahil NSTextView + NSScrollView bileşimindeki metin sistemi nesneleri, her şeyin birlikte nasıl çalıştığını görmek için.Ancak bunu çalıştırdığımda ve metin görünümüne bir satır çizgi eklemeye başladığımda, metin görünümden daha uzun olduğunda kaydırmaz. NSScrollView ve NSTextView birbirinin farkında değil sanki, burada her şeyi doğru bir şekilde iletişim kurmak için ne gibi bağlantı eksikler?

EDIT: Evet, bu sızdıran ve çirkin. :) Bu sadece burada neler olup bittiğini belirlemek için yazılmıştır, üretim kodu ya da doğrudan tekrar kullanacağım herhangi bir şey değil. Söz vermek.

cevap

4

-setHorizontallyResizable: ve -setVerticallyResizable: ile oynamayı denediniz mi?

+0

Gerçekten yapmadım. Ve bu cevap oldu. :) Teşekkürler! – Sean

+0

Bu ve -setHeightTracksTextView: NO olması gerekiyordu. – Sean

+0

I * biliyordum * Birini unutuyordum, ama kapsamlı bir arama için zamanım yoktu. :-) –