iPhone无法取消选择UITableViewCell

时间:2009-05-05 11:03:06

标签: iphone objective-c macos

我有一个继承自UITableViewController的RootViewController类。 当用户取消选择单元格时,我想启用/禁用工具栏上的某些按钮。

如何捕获取消选择事件?

-(void)tableView:(UITableView *)tableView deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated
{
    if(indexPath.row <= rowNumber)
    {
        [viewButtton setEnabled:NO];
        [editButtton setEnabled:NO];
    }
}

我尝试使用此方法,但它似乎根本不执行。有什么想法可以做到这一点吗?

2 个答案:

答案 0 :(得分:1)

我认为没有deselectRowAtIndexPath事件,有一个方法可以调用取消选择indexPath,但是看看SDK我在UITableViewDelegate中看不到这个事件:http://developer.apple.com/iPhone/library/documentation/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html。 / p>

你可以在didSelectRowAtIndexPath:事件期间启用/禁用工具栏上的某些按钮吗?

-Rog

答案 1 :(得分:0)

这仅限于当前的测试版SDK,这意味着它可能有错误/更改/不支持...

我注意到你的方法声明与SDK不匹配(至少是我的版本)。

尝试删除animated:(BOOL)animated;我认为这不适用于此。

请参阅UITableView.h中的~345行,和/或右键单击didDeselectRowAtIndexPath和“跳转到定义”,您可能会在其中找到如何定义委托方法。

也就是说,如果您的目标只是“在选择单元格时启用/禁用某些按钮”,

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath;

应该工作得很好。这将在他们选择单元格之后和取消选择之前发生。 'deselect'必须使用动画而不是用户交互。我认为你想要使用取消选择的唯一原因可能是确保你的事件仅在选择单元格不再突出显示之后发生的美学价值。