Objective c 处理双击鼠标事件,并为NSTableView按回车键

Objective c 处理双击鼠标事件,并为NSTableView按回车键,objective-c,cocoa,nstableview,Objective C,Cocoa,Nstableview,好的,我需要的是非常简单的,虽然我仍然找不到任何具体的 我希望能够: 跟踪双击事件 当NSTableView处于焦点且按下“Return”(返回)键时进行跟踪 你会怎么做 另外,我已经查看了NSTableViewDelegate规范,但找不到任何有用的东西。双击需要执行以下操作: -(void)awakeFromNib{ [self.tableView setDoubleAction:@selector(thisMethod)]; //And if you wish to t

好的,我需要的是非常简单的,虽然我仍然找不到任何具体的

我希望能够:

  • 跟踪双击事件
  • NSTableView
    处于焦点且按下“Return”(返回)键时进行跟踪
你会怎么做


另外,我已经查看了
NSTableViewDelegate
规范,但找不到任何有用的东西。

双击需要执行以下操作:

-(void)awakeFromNib{
    [self.tableView setDoubleAction:@selector(thisMethod)];
    //And if you wish to take selector dynamically, I guess you know how to do :)
}

-(void)thisMethod{
    NSLog(@"double clicked");
}

对于return事件,将NSTableView子类化并覆盖keyDown:

Swift 5.x:

override func keyDown(带有事件:NSEvent){
如果event.characters?.count==1{
让character=event.keyCode
开关(字符){
//36是回报
案例16(36):
打印(“返回:\(事件)”)
违约:
打印(“任何其他键:\(事件)”)
}
}否则{
super.keyDown(带:事件)
}
}

为什么要聚焦返回键?您需要为表设置新值吗?是的,100%正确。(哦,我过去一定用过这个,但是…忘了它了…哈哈)。至于“Return”键处理,它与编辑值无关。我在自定义
NSView
中使用了一个
NSTableView
,它在自定义编辑器中显示为一个自动完成下拉列表。如果用户的注意力集中在编辑器上,那么一切都由编辑器类处理,一切都很好。但是,如果焦点转到下拉菜单,返回键(也称为“使用当前选定的值做点什么”=“在编辑器中插入,光标位置”)必须单独处理。