Сделать выделенную строку жирным в NSTableView - PullRequest
2 голосов
/ 30 января 2012

Я пытаюсь сделать стиль выделения жирным шрифтом в 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];
}

К сожалению, эффекта нет.

Как сделать текст в строке жирным при выделении?

1 Ответ

2 голосов
/ 30 января 2012

Вы можете попытаться достичь, изменив ячейку таблицы, которая будет отображаться в делегате таблицы:

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex {
    // Maybe a test on the table column is recommanded if some cells should not be modified
    NSIndexSet *selection = [aTableView selectedRowIndexes];
    if ([selection containsIndex:rowIndex]) {
        [aCell setFont:[NSFont boldSystemFontOfSize:12]];
    } else {
        [aCell setFont:[NSFont systemFontOfSize:12]];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...