я следующий код в изолированном тест какао приложение: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.
Действительно, я этого не сделал. И, похоже, это был ответ. :) Благодаря! – Sean
Это и -setHeightTracksTextView: должно быть НЕТ. – Sean
Я * знал * Я забыл один, но не успел найти исчерпывающий поиск. :-) –