Ho il seguente codice in un test di cacao applicazione stand-alone: NSTextView all'interno di un NSScrollView non scorre :(
- (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];
}
Sto cercando di impostare tutta la gerarchia di oggetti coinvolti (tra cui il oggetti di sistema di testo) in una combinazione NSTextView + NSScrollView solo per vedere come funziona tutto insieme. Tuttavia quando eseguo questa operazione e inizio ad aggiungere un sacco di linee alla vista testo, non scorre quando il testo diventa più lungo della vista È come se NSScrollView e NSTextView non fossero a conoscenza l'un l'altro Quali connessioni mi mancano per ottenere tutto qui per comunicare correttamente?
EDIT: Sì, questo è leaky e brutto. :) Questo è stato scritto solo per cercare di determinare cosa sta succedendo qui, non il codice di produzione o qualcosa che userò direttamente mai più. Promettere.
In effetti non l'ho fatto. E sembra che fosse la risposta. :) Grazie! – Sean
That e -setHeightTracksTextView: necessario per essere NO. – Sean
Sapevo * ne stavo dimenticando uno, ma non avevo tempo per una ricerca esaustiva. :-) –