Domanda

Sto facendo una semplice applicazione Todo in Cocoa. Ho aggiunto una classe (e di un NSObject al XIB) MATodoController:

MATodoController.h

#import <Cocoa/Cocoa.h>


@interface MATodoController : NSObject
{
    IBOutlet NSTableView *table;
}

- (IBAction)addItem:(id)sender;
- (IBAction)removeItem:(id)sender;

@end

MATodoController.m

#import "MATodoController.h"


@implementation MATodoController

- (void)addItem:(id)sender
{

}

- (void)removeItem:(id)sender
{

}

@end

Ho una presa 'tavolo' a una e due azioni 'addItem' NSTableView e 'removeItem' chiamato dai clic sui pulsanti.

C'è un modo (naturalmente c'è un modo) Come posso aggiungere nuove righe / Remove Selected file da e verso un NSTableView (gli utenti possono selezionare più righe in una sola volta)?

Grazie in anticipo.

Ah, ancora una cosa:. L'NSTableView ha una sola colonna (che si compone di caselle di controllo)

È stato utile?

Soluzione

In Cocoa, non realmente aggiungere / rimuovere righe a una NSTableView direttamente. Nel vostro controller, si potrebbe desiderare di adottare il protocollo NSTableDataSource, che ha 2 metodi importanti da attuare al fine di ottenere questo lavoro:

- (int) numberOfRowsInTableView:(NSTableView *)aTableView
- (id) tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex

Questi metodi rispondere ai messaggi della vista tabella invia alla sua fonte di dati (configurato in Interface Builder) al fine di compilare la tabella con le righe di dati. In queste implementazioni di metodo, si dovrà restituire le informazioni che il metodo richiede (il numero di righe, il valore di una cella in una determinata riga). Interrogando qualunque archivio di dati che hai lavorato fuori

I tuoi addItem e removeItem metodi saranno anche bisogno di memorizzare / cancellare i dati di riga (in qualsiasi rappresentazione che avete architettato). Si potrebbe creare una nuova classe che rappresenta ogni riga e memorizzarli in un NSMutableDictionary, per esempio.

Oltre a documenti di Apple, ecco una buon tutorial per questo compito.

In bocca al lupo!

Altri suggerimenti

Con Cacao, il modo più semplice per farlo è con attacchi. Crea un NSArrayController, legata a un'istanza di NSMutableArray, e legare il NSArrayController al NSTableView.

CocoaDev offre una buona panoramica di la procedura . Si può anche leggere di Apple documentazione , ed eccellenti href="http://cocoadevcentral.com/articles/000080.php" articolo su attacchi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top