2011-08-01 9 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]、それ以外の場合はサイズ変更のmouseupまで実現しませんでした。同じ問題があるかどうかはわかりません。

+0

ありがとう、これは私が必要なものです。ちょっと速報ですが、 '_updateGridWithCurrentItemsIfNecessary'はまだそこにありますか?私はそれを見つけることができません。 – Donovan

+1

これはプライベートメソッドなので、ドキュメントには表示されません。プライベートなので、respondsToSelector:checksを使ってプライベートメソッドに呼び出しをラップすることが重要です。メインイベントループを待つのではなく、ビューを直ちに更新することができる唯一の方法でした。 –

関連する問題