2017-09-05 54 views
1

我有一個窗口有3個NSTableViews和1個NSCollectionView。 collectionview顯示圖像。我希望能夠選擇其中一個圖像並使用鍵盤刪除鍵將其刪除,但我無法使collectionview成爲第一響應者。我可以選擇任何tableviews並覆蓋keyDown來接受鍵盤輸入,但這不適用於collectionview。我在其他地方使用makeFirstResponder(_ :)來強制關注collectionview,但在該應用中該窗口只有一個視圖。任何想法我做錯了什麼?NSCollectionView將不接受關鍵事件

回答

0

如果您可以在集合視圖中選擇圖像或使用鍵盤上的箭頭鍵在集合視圖中導航 - 通常意味着集合視圖是firstResponder。

因此,請嘗試啓用選擇,檢查是否啓用了集合視圖。

刪除鍵也可能是等價鍵 read more here。如果是的話,你應該重寫performKeyEquivalent(with:)方法來接收這種類型的事件

此外,NSCollectionView keyDown(with:)方法不會將關鍵事件傳遞給響應者鏈。要在超級視圖中處理這些事件,您應該在集合視圖中通過調用self.nextResponder?.keyDown(with: event)來覆蓋您想要自行處理的事件。