2010-08-04 41 views
2

默认情况下,双击触发器在NSTableView中重命名。NSTableView双击/重命名

我怎样才能让双击而不是触发我自己的自定义代码(如打开双击文件)?

还有:如何让重命名像在Finder中,您首先单击,然后再次单击并快速移动鼠标指针?这就是在Finder中触发重命名的方式。我想在NSTableView中那样。

+0

你看过NSBrowser吗?它可能会更好地满足您的需求,因为它是Finder使用的。 – theMikeSwan 2010-08-04 21:13:10

+0

NS浏览器的双重动作和点击编辑功能与表格视图相同(这是OP询问的内容)。 – 2010-08-04 22:29:34

回答

7

根据文档,NSTableView有-setDoubleAction:。单击一次选择一行,然后单击要编辑的文本单元格的行为就像Finder默认情况下(并且这与Finder都没有任何关系,请快速移动指针 - 尝试它)。

点击一次选择,然后再次点击开始重命名。点击两次(足够快是双击),并处理“双重”操作。

+1

我想补充一些信息,如果你点击两次文字,它将进入编辑模式,而不是执行你的自定义动作。 为了执行您的操作并阻止进入编辑模式,单元格也应该被设置为不可编辑,如@JWWalker所写。 – xyz 2012-02-25 21:09:57

+0

Xcode表视图连接检查器有一个等效的已发送操作:“doubleAction”。控制 - 从它拖动到你的控制器(或到它的头文件来创建操作方法) – 2018-01-30 19:32:50

+0

@PaulCollins整洁!我想知道这是什么时候加入的。很久以前,我知道它根本不在IB中。 – 2018-02-06 18:04:57

2

您必须使文本单元格不可编辑以便您的表格视图获得双击操作消息。

+0

不真实。 Growl的BeepHammer示例应用程序将列和单元格都设置为可编辑,双击工作正常。 – 2010-08-05 05:01:04

+0

我不知道那个例子,但是' - [NSTableView setDoubleAction:]'的文档说“如果双击单元格是可编辑的,则不会发送此消息,而是单元格被编辑。” – JWWalker 2010-08-05 05:09:39

+0

你是对的,这是从文档中可以看出的。但似乎文档在这种情况下是错误的。看起来像这个工程,即使单元格是可编辑的。 – Enchilada 2010-08-24 05:58:21