Pergunta

Eu estou fazendo um simples aplicativo Todo em Cocoa. Eu adicionei uma classe (e um NSObject ao 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

Eu tenho uma saída 'mesa' a um NSTableView e 'addItem' duas ações e 'removeItem' chamado por cliques de botão.

Existe uma maneira (é claro que há uma maneira) Como posso adicionar novas linhas / remover linhas selecionadas para e de um NSTableView (os usuários podem selecionar várias linhas de uma vez)?

Agradecemos antecipadamente.

Oh, mais uma coisa:. O NSTableView tem apenas uma coluna (que consiste em caixas)

Foi útil?

Solução

Em Cacau, você não realmente adicionar / linhas remover para um NSTableView diretamente. Em seu controlador, você pode querer adotar o protocolo NSTableDataSource, que tem 2 métodos importantes que você precisa implementar para começar este trabalho:

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

Estes métodos irá responder às mensagens exibição de tabela envia para a sua fonte de dados (configurado na Interface Builder), a fim de preencher a tabela com linhas de dados. Nessas implementações de método, você terá que retornar a informação de que o método exige (o número de linhas, o valor de uma célula de uma linha particular). Consultando todos os dados armazenar você trabalhou

Seus métodos addItem e removeItem também terá de loja / dados de linha de exclusão (em qualquer representação de ter inventado). Você pode criar uma nova classe que representa cada linha e armazená-los em um NSMutableDictionary, por exemplo.

Além docs da Apple, aqui está um bom tutorial para esta tarefa.

Boa sorte!

Outras dicas

Com Cacau, a maneira mais fácil de fazer isso é com ligações. Criar um NSArrayController, ligada a uma instância do NSMutableArray, e se ligam a NSArrayController ao NSTableView.

CocoaDev dá uma boa visão de o procedimento . Você também pode ler da Apple documentação , e excelente artigo de CocoaDev em ligações.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top