/ / NSTextView не успява, когато се използва като contentView - aim-c, какао

NSTextView се провали, когато се използва като contentView - цел-c, какао

Програмно създавам NSTextView да бъдеcontentView за прозорец. Когато създам WebView, използвайки следния код, той показва ленти за превъртане и оразмеряването на палеца и оразмеряването на прозореца работи безупречно.

Когато коментирам WebView и се опитвам да го използвамa NSTextView като contentView, той не "работи", когато прозорецът е преоразмерен: Преоразмеряването на прозореца с помощта на палеца причинява съдържанието на изгледа на текст да не се пребоядисва правилно, той също рисува над заглавието на прозореца и преоразмеряването на палеца също не е пребоядисано.

-(void)applicationDidFinishLaunching:(NSNotification*)aNotification{
NSTextView* view = [[NSTextView alloc] initWithFrame:[window frame]];
// WebView* view = [[WebView alloc] initWithFrame:[window frame]];

[window setContentView:view];
[window makeFirstResponder:view];
[window makeKeyAndOrderFront:view];
}

Редактиране: Работен код. Създава NSScrollView, за да бъде Windows new contentView, и добавя NSTextView като свой документ.

-(void)applicationDidFinishLaunching:(NSNotification*)aNotification{
NSScrollView* scrollView = [[NSScrollView alloc] initWithFrame:[window frame]];
NSTextView* view = [[NSTextView alloc] initWithFrame:[scrollView bounds]];
[window setContentView:scrollView];
[scrollView setDocumentView:view];
[scrollView setHasVerticalScroller:YES];
[scrollView setHasHorizontalScroller:YES];

[window makeFirstResponder:view];
[window makeKeyAndOrderFront:view];
}

Отговори:

3 за отговор № 1

Уеб изглед прави и управлява собствените си превъртателии е по-специален случай, а не норма. NSTextView не. Това е само текстовият изглед. Това е норма - изгледите за превъртане идват предварително завити в NSScrollView само за удобство на Interface Builder. В кода трябва да създадете и NSScrollView, след което увийте изгледа в него. " s изглед на превъртане, който в този случай ще бъде изгледът ви от най-високо ниво.