2009-09-24 5 views
3

У меня есть NSTableView в моем приложении. прямо сейчас говорят 8 столбцов на 48 строк.Как выделить строку в NSTableView

У меня есть функция, которая запускает определенный конкретный столбец, чтобы видеть, что значение или значение в каждой ячейке больше определенного значения. Если это, я хотел бы, чтобы приложение выделило строку.

Я прочел чтение, и я все еще ищу вызовы функций или процесс, который позволит мне извлечь ячейки/строки/или прямоугольник и позволить мне изменить цвет.

Каковы функции и шаги в изменении цвета ячеек?

+0

У меня есть два ответа, и я хотел бы просто сказать, есть ли способ, которым я могу просто извлечь dataCell из NSTableView как NSTextFieldCell или NSCell, а затем просто создать пользовательскую функцию для реализации чертежа? потому что у NSTextFieldCell & NSCell есть свои собственные функции рисования, также мне понадобится время для создания отдельного делегата, а собственный класс ячеек – ReachConnection

ответ

5
- [NSTableView selectRowIndexes:byExendingSelection:] 

Source

+0

в порядке, похоже, я собираюсь реализовать свои решения с этим. Я настрою предпочтение так, чтобы у пользователя не было возможности выбирать строки, и я буду использовать эту функцию для выбора точек данных в таблице, которые превышают мои параметры состояния. – ReachConnection

0

Набор делегат Tableview и реализовать метод

– tableView:dataCellForTableColumn:row: 

. Затем напишите собственный класс dataCell для выполнения пользовательского чертежа.

+0

- это какой-то способ, который я могу просто извлечь DataCell из NSTableView как NSTextFieldCell или NSCell, и то просто создайте пользовательскую функцию для реализации чертежа? потому что у NSTextFieldCell & NSCell есть свои собственные функции рисования, также мне было бы время создать отдельный делегат и собственный класс ячеек – ReachConnection

0

Если извлечь данные в виде строк, вы можете использовать: -

NSAttributedString

изменить цвет текста и фона.

0
-(void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row 

... дает вам предварительно изготовленную ячейку (обычно это NSTextFieldCell), которую вы можете затем окрасить. Не нужно возвращать его - Apple уже сделала это и собирается его использовать, просто измените объект по своему усмотрению. Прекрасно работает.

3

Чтобы изменить цвет ячейки, вы можете попробовать этот метод

-(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]; 
} 

это сделает вашу строку с другим цветом.

+0

Помог мне! Благодарю. – Todd

Смежные вопросы