禁用NSTableCellView单击编辑

时间:2014-11-26 10:00:56

标签: xcode macos cocoa nstableview nstextfield

如果突出显示一行,然后左键或右键单击突出显示的单元格,它将进入编辑模式(即使在没有活动的X秒后,它也不是双击动作)。

我想禁用此功能并将其设置为只有双击即可,即使您已经选择了单元格也是如此。

如果那是不可能的,我至少要禁用右键单击编辑功能,因为我有我想要显示的自己的上下文菜单,但右键单击文本会触发编辑功能。我自己的上下文菜单,而不是我在文本外部但在单元格中单击时收到的上下文菜单。

我可以用于此的任何方法吗?

注意:我仍然希望允许通过回车键进行编辑。

1 个答案:

答案 0 :(得分:0)

没有检查,但也许您可以在委托中实现-control:textShouldBeginEditing:并阅读内部的当前事件:

- (BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor
{
  NSEvent *currentEvent = [NSApp currentEvent];
  switch (currentEvent.type)
  {
    case NSLeftMouseUp:
      if (currentEvent.clickCount<2)
      {
        return NO;
      }
      return YES;
    case NSRightMouseUp:
      return NO;
    default:
      return YES;
  }

只是一个想法。来吧!