单击NSActionCell时,防止NSOutlineView中的选择更改

时间:2010-02-25 01:18:55

标签: cocoa user-interface macos

我有一个自定义NSActionCell,用于渲染我的NSOutlineView中某些行的某些部分。我可以接收并响应NSActionCell上的点击,但是当单击该单元格时,选择也会更改。如果点击我的一个自定义NSActionCells,我想阻止选择更改。

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:4)

回答我自己的问题:

如果您希望能够单击的单元格(以及随后选择一行)位于其自己的列中,则以下Apple示例非常有用:

DragNDropOutlineView

该示例依赖于实现以下NSOutlineViewDelegate方法(在第304行的AppController.m中实现):

- (BOOL)outlineView:(NSOutlineView *)outlineView shouldSelectItem:(id)item

如果您在另一个单元格中有一个单元格,您仍然可以使用该方法,但是您需要做更多的工作来确定是否在您的子单元格中单击了鼠标。证明该逻辑的一个很好的例子是以下Apple示例:

PhotoSearch