NSTableView 文本字段单元格不应在单击时进入编辑状态

NSTableView textfield cell should not go into edit on click

我的应用程序中有两个 NSTableView,它们都设置了相同的参数等,它们有几个包含 NSTextField 单元格的列,第一列是 editable.

第一个 table 的行为与我想要的一样:如果用户单击,则该行被选中。如果用户第二次单击该行,文本字段将进入编辑模式,让用户更改其中的文本。

第二个 table 的行为应该相同,但事实并非如此:如果我单击其中的一行,大多数时候它会直接进入文本字段的编辑模式。这种情况很少发生。

有谁知道这是什么原因造成的?我检查了所有参数(在 IB 中)和代码,它们在两个 table 上都是相同的。如果我在顽皮的 table 中的文本字段上设置 'Refuses first responder',它根本不允许我编辑文本字段,所以该选项没有帮助。

解决了!它在第一个 table 视图上工作但在第二个 table 上导致编辑问题的原因是第一个 table 允许拖动而第二个不允许!这似乎以某种方式干扰了 doubleAction(我什至在某处读到 editable table 不能有 doubleAction 但它似乎可以正常工作)。我可以通过在第二个 table 视图的视图控制器中实现 tableView(_:writeRowsWithIndexes:toPasteboard:) 并简单地 return false 来修复它(因为 2. table 不应该有 drag'n '掉落能力) ...

func tableView(aTableView:NSTableView, writeRowsWithIndexes rowIndexes:NSIndexSet, toPasteboard pboard:NSPasteboard) -> Bool
{
    return false;
}