Mostrando a data de duas linhas na visualização da tabela, respectivamente em dois campos de texto, via ligação

StackOverflow https://stackoverflow.com/questions/4238293

Pergunta

Eu tenho uma classe nomeada como transação na qual um atributo é a transação que é do tipo nsdate.

Estou usando o NSARRAYController para exibir uma lista de transações em uma exibição de tabela.

Minha exigência é-

Quero mostrar a data na primeira linha em um campo de texto rotulado como "de" e data na última linha em um campo de texto rotulado como "para".

Minhas perguntas é-

Posso conseguir isso via ligação no IB? Se sim, então como?

Obrigado,

Miraaj

Foi útil?

Solução

Sim, você pode fazer isso (ou algo parecido), veja o @min e @max operadores de matriz.

Veja como fazer uma versão muito simples disso:

  1. Open Interface Builder - Crie um novo aplicativo
  2. Adicione um NSARRAYController, defina -o para preparar automaticamente o conteúdo.
  3. Adicione uma tabela, rotule as duas colunas "name" e "age"
  4. Adicione um botão (rotulado "+") e dois rótulos (mude o nome para maxval, minval)
  5. Ajude as ligações NSARRAYController da seguinte maneira:

alt text

Aqui está o aplicativo em execução (apenas no modo "simular" do Builder de Interface). Para usá -lo, clique em + clique na linha superior da tabela e coloque um nome na primeira coluna e uma idade no segundo. Em seguida, repita para mais algumas pessoas.

alt text

Tudo isso parece um pouco enigmático, mas é suficiente. Eu adicionei os rótulos "Max Age" e "Min Age" para maior clareza na minha versão.

Outras dicas

Infelizmente, isso não é algo que as ligações são particularmente boas. Você poderia alcançá -lo, mas seria muito hacky.

o NSTableViewDataSource O protocolo ainda é uma maneira perfeitamente relevante e válida de fornecer dados para uma tabela. Em casos como esses (onde você não está apenas apresentando um conjunto de dados uniformes de vanilha em uma tabela), o protocolo de fonte de dados é a única maneira sã de resolver o problema. Dessa forma, você está no controle total do que a tabela exibe.

A única parte "difícil" é que, se você estiver usando dados principais, sua classe de origem de dados precisará observar o contexto do objeto gerenciado para alterações e recarregar os dados ( - -Reloaddata para atualizar a tabela inteira ou usar -reloaddatafrowondexes: columnindexes : para escolher as linhas que você deseja atualizar).

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