/ / NSTextView ha esito negativo se utilizzato come ContentView - Objective-C, cacao

NSTextView ha esito negativo se utilizzato come ContentView - Objective-C, cacao

Sto programmaticamente creando un NSTextView da essereil contentView per una finestra. Quando creo una WebView utilizzando il seguente codice, vengono visualizzate le barre di scorrimento e il pollice di ridimensionamento e il ridimensionamento della finestra funziona in modo impeccabile.

Quando commento la WebView e cerco di usarlaun NSTextView come ContentView, non "funziona" quando la finestra viene ridimensionata: il ridimensionamento della finestra usando il pollice fa sì che il contenuto della visualizzazione del testo non venga ridisegnato correttamente, ma dipinge anche il titolo della finestra e il pollice di ridimensionamento non è anche ridipinto.

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

Modifica: codice di lavoro. Crea un NSScrollView per essere il nuovo ContentView di Windows e aggiunge un NSTextView come documento.

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

risposte:

3 per risposta № 1

Una visualizzazione Web crea e gestisce i propri scrollersed è un caso speciale piuttosto che la norma. Un NSTextView no. È solo la visualizzazione del testo: questa è la norma: le viste scorrevoli vengono pre-incartate in un NSScrollView solo nella comodità di Interface Builder. Nel codice, è necessario creare anche un NSScrollView, quindi racchiudere la vista al suo interno. s la vista di scorrimento che sarebbe la tua vista di primo livello in quel caso.