Newsgroup: it.comp.macintosh
Titolo: Cocoa e le scroll Bar

come faccio ad attivare le scroll bar per un componente fatto da me che
estende NSTextView ? 
Grazie 1k
Wezzy

 estende NSTextView ? 
Devi estendere un elemento NSScrollView: dentro ogni object NSScroolView
c'e' un elemento NSTextView.
La gestione delle scroll bar viene poi fatta utlizzando i messaggi
setHasVeticallScroller e setHasHorzontalScroller.
Di default un oggetto NSScrollView ha la scrollbar verticala attiva  e
quella orizzontale disattiva
-- 
Bullets cannot be recalled. They cannot be uninvented.
But they can be taken out of the gun. (Martin Amis)
"ab_bar" is ROT13 encoded

 quella orizzontale disattiva
Quindi basta che al posto di estendere NSTextView il mio oggeto estenda 
NSScrollView ? ma in questo modo posso accedere a tutti i metodi di un 
NSTextView ?
Io avevo pensato
	-creo una nuova istanza NSSCrollVire
	-creo una nuova istanza del mio oggetto
	-metto l'istanza di NSScrollView dentro il custom object
	-inserisco il mio oggetto tramite [NSScrollView setDocumentView:<mio 
oggetto>]
Perchè questo sistema non funziona ?
Ciao e Grazie
Wezzy

 NSTextView ?
Certo. L'oggetto NSScrollView contiene (ma non e' una sottoclasse) un
oggetto NSTextView e quindi i suoi metodi. Usando direttamente
NSSCrollView fai in automatico quello che volevi fare manualmente.
Se trascini un elemento indicato come NSTextView in IB (Interface
Bulider) e poi richiami la finestra con le info, noterai che la classe
e' NSScrollView e non NSTextView.


 e' NSScrollView e non NSTextView.
Wow provo subito a smanettarci
Grazie 1k
wezzy

 e' NSScrollView e non NSTextView.
Scusa ma potresti postare un esempio ?
Ho provato a cambiare ed ereditare da NSScrollView invece che da 
NSTextView, ma in questo modo tutti i metodi riferiti a NSTextView non 
funzionano più! come faccio ad accedere alla NSTextView contenuta nell 
NSScrollView ?
sto scrivendo un editor e volevo usare i Tabs, per il primo tab no 
problem ho impostato gli scroll con IB ma per i tab successivi che sono 
creati durante l'esecuzione non so come abilitare le scroll bar al mio 
componente che visualizza il testo.
Ciao  & Grazie
Wezzy

 componente che visualizza il testo.
Ora ho capito meglio il problema. Purtroppo non so aiutarti piu' di
tanto perche' sono alle prime armi con Cocoa.
Cio' che intendevo io e' appunto che IB quando inserisci un elemento
NSTextView aggiunge in realta' uno oggetto NSScrollView per reallizare
lo scrolling. E lo fa in automatico, anche se poi l'oggetto creato
risponde ai metodi di NSTextView. Ed infatti nel tuo programma nel primo
tab (creato in IB) lo scrolling funziona.


 tanto perche' sono alle prime armi con Cocoa.
Mi sono incuriosito e sono andato un po' a cercare. Questo in parte
risponde alle domande:
<
http://www.omnigroup.com/mailman/archive/macosx-dev/2002-April/025600.h
tml>
BTW, NSSCrollView e' una subview di NSClipView che e' a sua volta una
subview di NSView (do una sua sottoclasse come NSTextView).
Il problema adesso e' come fare a creare dei nuovi tab dinamicamente. 


 Il problema adesso e' come fare a creare dei nuovi tab dinamicamente. 
Quello sono riuscito a farlo:
[<outlet alla tua tabView> addTabViewItem:[[NSTabViewItem alloc] 
initWithIdentifier:<un NSString che userai per identificarlo>]];
poi lo selezioni con:
[<outlet alla tua tabView> selectLastTabViewItem:self];
e infine ci metti dentro una classe derivata da NSView così :
[[<outlet alla tua tabView> selectedTabViewItem] setView:<il tuo oggetto 
NSView o derivati>];
Ciao
Wezzy