I've seen this in some weird ways. like I have an textfield update on -tableView:shouldSelectRow: and it works fine if the user clicks on the row, but it has the problem you described when the row is selected by using the arrow up and down keys. So yeah, I guess you have to update the view after calling it to be sure (I guess it's updated automagically on any click event)