2
Я пытаюсь сделать смелый стиль выбора строки в NSTableView без подсветкиСделать выбранную строку жирным шрифтом в NSTableView
я переключился подсветка выкл:
[myTable setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];
Однако у меня есть некоторые проблемы делает текст жирным в выбранной строке. Как я уже сказал, мне нужно изменить свойства источника NSTableView:
- (void) tableViewSelectionDidChange: (NSNotification *) notification
{
NSDictionary *boldFont = [NSDictionary dictionaryWithObject:[NSFont boldSystemFontOfSize:13.0]
forKey:NSFontAttributeName];
NSDictionary *normalFont = [NSDictionary dictionaryWithObject:[NSFont systemFontOfSize:13.0]
forKey:NSFontAttributeName];
for(MyClass *obj in tableSourceList)
obj.name = [[NSMutableAttributedString alloc]
initWithString:obj.name
attributes: normalFont];
long row = [myTable selectedRow];
MyClass objectAtSelectedRow = [tableSourceList objectAtIndex: row];
objectAtSelectedRow.name = [[NSMutableAttributedString alloc]
initWithString:dr.dreamname
attributes: boldFont];
[tableSourceList replaceObjectAtIndex:row withObject:objectAtSelectedRow];
}
К сожалению, эффекта нет.
Как сделать текст в строке жирным шрифтом, если выбрано?
Этот код почти правильно, но текст становится жирным шрифтом только в одной колонке. Что вы имели в виду, когда писали «тест на столбец таблицы»? –
Можете ли вы добавить журнал, чтобы проверить, вызван ли метод делегата дважды в строке? –
Я добавил 'NSLog ([NSString stringWithFormat: @"% d ", rowIndex]);' Результат: '0 0 1 1 2 2' (этот фрагмент повторяется несколько раз). В таблице есть три строки. –