2011-08-01 145 views
1

我想通過執行-(void)magnifyWithEvent:(NSEvent *)event捏縮放在NSCollectionView,但我不知道該做什麼在這種方法。我得到的縮放量爲[event magnification],現在我需要刷新收藏視圖中的項目。NSCollectionView捏縮放

我以爲我可以將其保存在變量zoomValue中,並覆蓋方法- (NSCollectionViewItem *)newItemForRepresentedObject:(id)object以調整每個收集項目的視圖(我認爲這不起作用,但無論如何我不知道如何觸發集合視圖的「刷新」)。

對此有何想法? 謝謝。

回答

1

我正在做類似的事情,但從滑塊而不是捏。 你只需要調用:

[collectionView setMinItemSize:newSize]; 
[collectionView setMaxItemSize:newSize]; 
[collectionView setNeedsDisplay:YES]; 

要到發生滑動的阻力在現場調整大小,我不得不打電話的私有方法 - [NSCollectionView _updateGridWithCurrentItemsIfNecessary],否則調整大小並沒有發生,直到鼠標鬆開。不知道你是否會遇到同樣的問題。

+0

謝謝,這是我需要的。請注意,「_updateGridWithCurrentItemsIfNecessary」還在嗎?我找不到它。 – Donovan

+1

這是一個私人方法,所以你不會在文檔中看到它。由於它是私有的,因此使用respondsToSelector將調用包裝爲私有方法非常重要:檢查。這是我能夠立即讓視圖更新而不是等待主事件循環的唯一方法。 –