我有一个自定义NSActionCell,用于渲染我的NSOutlineView中某些行的某些部分。我可以接收并响应NSActionCell上的点击,但是当单击该单元格时,选择也会更改。如果点击我的一个自定义NSActionCells,我想阻止选择更改。
有一种简单的方法吗?
答案 0 :(得分:4)
回答我自己的问题:
如果您希望能够单击的单元格(以及随后不选择一行)位于其自己的列中,则以下Apple示例非常有用:
该示例依赖于实现以下NSOutlineViewDelegate方法(在第304行的AppController.m中实现):
- (BOOL)outlineView:(NSOutlineView *)outlineView shouldSelectItem:(id)item
如果您在另一个单元格中有一个单元格,您仍然可以使用该方法,但是您需要做更多的工作来确定是否在您的子单元格中单击了鼠标。证明该逻辑的一个很好的例子是以下Apple示例: