2009-09-02 28 views
1

我已經注意到,在Interface Builder中,如果我想單擊或拖動「庫」面板,我只需點擊它一次即使庫面板沒有當前焦點。NSTableView響應面板中的第一次點擊

我正在嘗試構建一個行爲相似的面板。

是否有任何簡單的方法讓NSTableView接受點擊,即使窗口沒有焦點?

謝謝。

回答

1

好的,我找到了答案。從awakeFromNib裏面我打電話給: [self setBecomesKeyOnlyIfNeeded:YES];

它似乎有伎倆。這與Interface Builder有點不同,其中面板只需單擊一次即可同時獲得焦點,但以這種方式進行操作正是我所需要的。

+0

很高興工作。我的回答如下,可以讓您同時關注點擊,並且可以用於任何視圖,而不僅僅是NSPanel。但是,如果這符合您的需求,那麼它顯然要簡單得多,並且不會從當前的keyWindow竊取鍵盤焦點(根據您的需要,這可以是好的也可以是不好的)。 – 2009-09-02 22:16:29

+0

您是否必須在XIB文件或代碼中設置其他任何內容?我試圖讓這個工作與NSCollectionView,迄今爲止失敗完全。 – 2009-12-01 04:24:39

+0

對不起,花了這麼長的時間來回應...我只是注意到了這個評論。你嘗試過「setBecomesKeyOnlyIfNeeded」嗎?它沒有工作嗎? – chaimp 2010-02-04 20:10:20

1

您的視圖應覆蓋-acceptsFirstMouse:以返回YES(或評估傳遞給您的事件以確定返回的內容)。當然,你必須繼承NSTableView的子類。

+0

我最終沒有這樣做,只是設置了Table所在Panel的「becomeKeyOnlyIfNeeded」屬性。但是,謝謝你的回答。 – chaimp 2009-09-02 22:10:09

相關問題