Обновить NSTableView после клика - не обновлять - PullRequest
0 голосов
/ 30 января 2009

У меня есть приложение с UITableView, использующее значки и кнопки раскрытия. Я хочу обновить значок в строке с «выбранным» значком, и обновить ранее выбранную строку с «невыбранным» значком. У меня есть код на месте, но когда я нажимаю на строки, он устанавливает обе строки в «выбранное» состояние, хотя при отладке я вижу, что моя переменная состояния устанавливается на правильную строку. Если я продолжаю нажимать на строки, я иногда могу отображать состояние «невыбранный». Я подозреваю, что это проблема обновления, но я попробовал метод setNeedsDisplay для ячеек и самого tableView, но безуспешно. Кто-нибудь сталкивался с этим раньше? Кстати, это в симуляторе (2.2.1) - не пробовал на устройстве.

Вот код:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    {
        int newRow = [indexPath row];
        int oldRow = [lastIndexPath row];

        if (newRow != oldRow)
        {
            [[tableView cellForRowAtIndexPath:indexPath] setImage: [UIImage imageNamed:@"IsSelected.png"]];

            c_oListPtr.c_sCurItem = [[tableView cellForRowAtIndexPath:indexPath] text];

            [[tableView cellForRowAtIndexPath:lastIndexPath] setImage: [UIImage imageNamed:@"NotSelected.png"]];

            [lastIndexPath release];
            lastIndexPath = indexPath;

            [[tableView cellForRowAtIndexPath:lastIndexPath] setNeedsDisplay];
            [[tableView cellForRowAtIndexPath:indexPath] setNeedsDisplay];
            [tableView setNeedsDisplay];
        }

        [tableView deselectRowAtIndexPath:indexPath animated:YES];
    }

Спасибо -Mike

1 Ответ

2 голосов
/ 31 января 2009

Вы пробовали [tableView reloadData]?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...