如何通过从特定列(不是所有列)中选择行来创建操作NSTableView

时间:2014-02-07 11:28:57

标签: objective-c cocoa

我有一个有四列的表视图,第四列用属性字符串填充,每当点击第四列的行时我需要调用一个动作

在其他词中,当我点击第四列的行时,只有动作应该调用

对于整行,我能够做到这一点,但不是针对perticullar列。

2 个答案:

答案 0 :(得分:0)

我认为你需要继承NSTableView并处理mouseDown

- (void)mouseDown:(NSEvent *)theEvent
{
    NSPoint globalLocation = [theEvent locationInWindow];
    NSPoint localLocation = [self convertPoint:globalLocation fromView:nil];
    NSInteger clickedRow = [self rowAtPoint:localLocation];
    NSInteger clickedCol = [self columnAtPoint:localLocation];
    if (clickedCol == 3) //... fourth column
    //.... do something with clickeRow and clickedCol
}

您可以创建自定义委托,以通知班级所有者已点击特定的row-col组合。

答案 1 :(得分:-1)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath   *)indexPath
{

    if(indexPath.row==3)
    {

    //DO your action here 

    }
}