Sto creando un NSTableView a livello di codice, ma per qualche motivo non importa quello che faccio, non riesco a visualizzare l'intestazione darn. È fondamentale farlo a livello di codice e non utilizzare l'IB perché sto effettivamente sviluppando questo widget in un IDE chiamato clozure cl che è un ide lisp che include un ponte di cacao. Originariamente pensavo che questo problema potesse essere causato dal mio ambiente di sviluppo ma ho appena creato un esempio in Xcode usando solo l'obiettivo C e sembra che il problema persista. Quello che faccio è piuttosto semplice:Creazione di un NSTableView a livello di codice (impossibile visualizzare NSHeaderView) (cacao osx)
faccio una finestra nella IB e nei suoi metodi awkefromnib creo e la configurazione di un tavolo con vista qui è il codice:
- (void)awakeFromNib {
mydatasource *data = [[mydatasource alloc] init];
NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"id"];
NSTableView *table = [[NSTableView alloc] initWithFrame: [[self
contentView]frame]];
[table setDataSource:data];
[table addTableColumn:column];
[table addTableColumn:column];
[[self contentView] addSubview:table];
}
Ecco il codice per il mio dati oggetto sorgente:
- (int)numberOfRowsInTableView:(NSTableView *)aTableView
{
printf("NUM ROwS");
return 4;
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
printf("THE OTHER ONE");
return @"OKAY";
}
con questo codice ottengo una finestra con due colonne e quattro righe e ciascuna cella che visualizza la stringa "okay", questo è tutto bene e buona tranne il tavolo ha alcuna intestazione. Questo potrebbe avere senso tranne quando guardo il metodo di intestazione delle tabelle, ha un'intestazione inizializzata con un frame i cui valori hanno un senso. Mi sto solo chiedendo perché non lo vedo. C'è qualche tipo speciale di magia che devo fare in modo che l'intestazione venga visualizzata? Non riesco a trovare alcun indizio nella documentazione. Ancora una volta è imperativo per l'ide lisp che questo sia fatto a livello di programmazione quindi non sarebbe utile non suggerire l'utilizzo dell'IB che so avrà un headerView funzionante. Molte grazie.
Grazie! Avevo una vista tabella XIB che si rifiutava di recuperare le celle e non vedeva l'ora di tradurle in codice a mano. <3 – Kalle
Solo una nota. L'incorporamento della vista tabella in una vista a scorrimento è essenziale per visualizzare tutto correttamente comprese le intestazioni. – Eonil
Aggiunto una conversione rapida sotto –