Pergunta

Eu quero construir um Cacau App com uma lista de entradas muito semelhante a lista de Afazeres de Coisas.app (consulte o screencast).A questão é se eu deveria usar

  1. um TableView,
  2. um CollectionView ou
  3. um modo de exibição da web.

Eu acho que poderia trabalhar com todos eles, mas o que atende os seguintes requisitos melhor?

  • ter uma lista de entradas -> 1 colunas e muitas linhas
  • reordenação com drag & drop
  • selecionar entradas individuais & use as teclas para ações como apagar
  • abrir uma entrada:a linha deve se expandir para mostrar mais campos de entrada
  • aparência personalizada:cantos arredondados, de sombra, de fundo gradiente

Até agora a minha pesquisa diz que o TableView possui a maioria das funcionalidades, mas é mais difícil para personalizar sua aparência, o CollectionView não tem drag & drop (certo?) mas é fácil para o design e o modo de exibição da web seria preciso muito esforço para não prejudicar a experiência do usuário e eu não posso ligar o meu modelo diretamente para campos de entrada.

Quais os prós e contras que estou em falta e o que você recomendaria para usar?

Foi útil?

Solução

Uma Webview não faz sentido. Você também pode criar um aplicativo da Web se usar uma WebView. Um NSCOLLECTIONVIEW é mais para dados como dados, como listagens de TV por hora.

O NSTableView é o único que faz sentido neste caso. Eu implementei todos os 5 pontos de bala com um NSTableView sem problemas. Você precisa estender o NStableView e fazer algum desenho personalizado para a aparência personalizada. Essa é a parte mais difícil.

Outras dicas

  • Abra uma entrada: a linha deve se expandir para mostrar mais campos de entrada

Você precisa de um vista de destaques. Uma visualização de tabela é para listas planas.

Observe que o NSOUTLINEVIEW é uma subclasse do NSTableView; portanto, todos os recursos de tabela também funcionam em uma exibição de esboço.

Há pessoas que já fizeram isso. Um que usei com sucesso é de Matteo Bertozzi e está disponível aqui: http://th30z.netsons.org/2009/03/cocoa-sidebar-with-badges-take-2/ Pode levar um pedaço de massagem para fazê-lo funcionar corretamente (especialmente se você precisar de um comportamento complexo de arrastar e soltar), mas para funcionalidade básica, como obter os títulos e itens da seção na lista, funciona excelentemente.

Editar: isso tem surgir antes e é uma pergunta comum na lista de e-mail de cacau-Dev. Aqui estão algumas outras opções.

Apenas deu uma olhada nas Coisas.próprio aplicativo usando "F-script em qualquer lugar".

Eles usaram uma subclasse de NSTableView chamado "DetailTableView", que apresenta o condensado itens para fazer.Recolhido todo os itens são implementados usando uma célula personalizado chamado "ToDoCell", mas expandido olhar que você começa quando a edição é interessante.Nesse caso, eles tem um modo de exibição personalizado chamado "ToDoEditView", que é inserido como uma visualização secundária do DetailTableView, quando necessário.Eu suspeito que esta edição de exibição é adicionado temporariamente como uma visualização secundária no local correto e a correspondente linha da tableview é redimensionada temporariamente enquanto ele estiver presente.

Tudo muito especulativo ..Eu adoraria saber os detalhes de como isso foi feito.É uma excelente INTERFACE do usuário.

Estou abordando o mesmo problema no meu aplicativo (com uma grande lista semelhante à lista de coisas para fazer) e acho que uma visualização de tabela faria muito sentido aqui.

O truque é que suas células ("linhas") se expandam quando clicadas duas vezes. Isso é sobre todo o progresso que fiz até agora.

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