2012-07-15 46 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]; 
    } 
} 
相關問題