Como destacar uma linha na NSTableView
-
16-09-2019 - |
Pergunta
Eu tenho NSTableView em meu aplicativo. agora dizer é 8 colunas por 48 linhas.
Eu tenho uma função que executa um específico de uma coluna específica para ver wether ou não o valor em cada célula é maior do que um determinado valor. Se é que eu gostaria que o aplicativo para realçar a linha.
Eu fiz alguma leitura e eu ainda estou olhando para as funções de chamadas ou um processo que vai me deixar extrair o células / linhas / ou rect e deixe-me mudar a cor.
Quais são as funções e as etapas mudando a cor das células?
Solução
- [NSTableView selectRowIndexes:byExendingSelection:]
Outras dicas
Para alterar a cor da célula você pode tentar este método
-(void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
[cell setDrawsBackground:YES];
if(row==0)
[cell setBackgroundColor:[NSColor color];
else if(row==1||row==2)
[cell setBackgroundColor:[NSColor color];
else
[cell setBackgroundColor:[NSColor color];
}
isso vai fazer a sua linha com cor diferente.
Defina um delegado tableView e implementar o
– tableView:dataCellForTableColumn:row:
método. Em seguida, escrever um personalizado classe DataCell para fazer o desenho personalizado.
Se você extrair os dados como cordas, você pode usar: -
NSAttributedString
para mudar a cor de texto e fundo.
-(void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
... dá-lhe o celular pré-fabricados (geralmente um NSTextFieldCell), que você pode, então, cor. Não precisa devolvê-lo - a Apple já fez e está prestes a usá-lo, basta modificar o objeto como você vê o ajuste. Funciona muito bem.