2012-07-15 15 views
2

例如,当我点击下面的红点: 如何在点击视图的空白区域时取消选择NSOutlineView中的所有表格行?

before

我想会发生以下取消选择:

enter image description here

我建立基于视图NSOutlineView对数据源和选择索引使用绑定。到目前为止,我试图覆盖TableCellView的becomeFirstResponder,也覆盖NSOutlineView的becomeFirstResponder,但是看起来NSOutlineView从来没有真正放弃第一响应者的状态?

一些建议将非常感谢!

+2

控制器对象有一个“避免空选择”复选框;确保没有选中。 – 2012-07-15 20:34:27

回答

3

我在该主题上找到了this post。该解决方案似乎在创建NSOutlineView的子类并覆盖mouseDown:,以便您可以确定点击是否在一行上。当点击一行时,你只需发送到超级。如果不是,则将deselectAll:发送给您的NSOutlineView

我还没有尝试过自己,但有各种各样的帖子提出了类似的代码。

+0

非常好,效果很好。谢谢。 – Michael 2012-07-16 11:05:17

1

使用setAction:方法NSOutlineView

[mOutlineView setAction:@selector(doClick:)]; 
[mOutlineView setTarget:self]; 

-(IBAction) doClick:(id)sender; 
{ 
    if ([mOutlineView clickedRow] == -1) { 
     [mOutlineView deselectAll:nil]; 
    } 
} 
相关问题