NSTableView keyDown:和mouseDown:

时间:2009-11-22 19:11:14

标签: objective-c cocoa nstableview

我一直在研究Mac的菜单笔记笔记应用程序。它是用Objective-C和Cocoa编写的,我正在使用BWToolkit。我的问题是在BWTransparentTableView中获取keyDown:和mouseDown:事件,它是NSTableView的子类。我无法让它发挥作用。我试过在互联网上搜索,有些地方说你必须继承NSTableView。我试过了,但它仍然无效。我对Objective-C和Cocoa很新,我可能只是做错了。

1 个答案:

答案 0 :(得分:4)

NSTableView中的项目会在慢速双击或按下Return键时自动开始编辑。确保将表视图,单元格和数组控制器(如果使用)标记为可编辑。

如果您没有使用NSArrayController,请确保您的表格视图有一个委托,并且它会响应tableView:shouldEditTableColumn:row:

要处理双击,您只需设置表格视图的doubleAction

- (void)awakeFromNib
{
    [tableView setTarget:self];
    [tableView setDoubleAction:@selector(doubleClickInTable:)];
}

- (void)doubleClickInTable:(id)sender
{
    NSInteger rowIndex = [sender selectedRow]; //Use selectedRowIndexes if you're supporting multiple selection
    //Handle the double click
}

请注意,这些方法都不需要您继承NSTableView