2009-08-18 32 views
2

我不知道它是如何發生的,但突然在我的表格視圖中,我無法再進行空選擇。像表格視圖一樣,必須選擇行,並且不能通過單擊表格視圖中的其他位置來取消選擇。我可以選擇不同的行,但我不能做出空白選擇。無法在NSTableView中進行空選擇

在表視圖的Interface Builder屬性中啓用了空選擇,所以我不知道下一步要看哪裏。我做的一個重大改變是我安裝了OS X Snow Leopard。我不確定這個問題是否與此有關。

感謝

+0

什麼是你的代碼看起來像didSelectRowAtIndexPath方法?另外,這是在模擬器還是在設備上? – Jab 2009-08-18 22:04:04

+0

嗨,我沒有實現該方法。這是OS X的發展,而不是iPhone。 – indragie 2009-08-19 00:41:14

回答

0

我不能說遠不止此:這似乎是專門10.6

+0

不好意思地說了這個,但是接下來要問一個關於還沒有發佈的操作系統的問題,以及你是在NDA下面的問題,你期望什麼? – 2009-08-23 18:47:02

0

嘗試用setter方法setAllowsEmptySelection:做編程。或者,嘗試禁用IB中的空白選擇,保存,然後啓用它,再節省一次時間。這可能會解決它。

此外請確保tableView:shouldSelectRow:中的某些內容不會阻止您(假設您已實施此代理方法)。

+0

我已經嘗試了這兩種方法,包括以編程方式進行設置,問題仍然存在。除了少數用於拖放操作的表格視圖外,我沒有任何委託方法。 – indragie 2009-08-19 00:45:19

+0

愚蠢的問題,但你確實有出口設置,對吧? :)無論如何,檢查數組控制器的屬性,如果你使用一個(比如Peter Hosey建議的)。 – Cinder6 2009-08-19 01:46:53

+0

遠射,但你有沒有嘗試清洗所有目標? – Cinder6 2009-08-19 17:33:00

0

是否將列綁定到數組控制器?如果是這樣,請檢查控制器的屬性。

+0

是的,數組控制器的「避免空選擇」屬性被選中,我取消選中它,然後再試一次,但仍然不起作用。 – indragie 2009-08-19 15:41:28

3

一個問題,我打這個確切同樣的問題(我用的XCode 4.2,但編譯反對10.6sdk)。 NSOutlineView :: deselectAll只是不取消選擇的東西。我有一個相當複雜的NSOutlineView展現出相同的行爲。我看了一下蘋果開發者論壇和其他地方,嘗試解決這個問題。然而最終解決這個工作對我來說是很簡單的,我可以只使用:

- (void) myDeselectAll 
{ 
    [self selectRowIndexes:[NSIndexSet indexSet] byExtendingSelection:NO]; 
} 
+0

如果您支持10.6,則需要執行此操作而不是deselectAll。您需要下載10.6sdk並將其設置爲基礎sdk才能看到此錯誤。 – Mark 2013-05-17 18:56:24

0

這是有點老了,但對於那些誰需要一個答案: 使用界面生成器,並標記陣列控制器。刪除選中標記「避免空選擇」。 如果不這樣做,請爲陣列控制器創建一個插座。這裏我稱之爲DocumentArrayController。

然後空選擇:

[_DocumentArrayController removeSelectionIndexes: 
     [_DocumentArrayController selectionIndexes]];