問題タブ [nscollectionview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
528 参照

objective-c - NSCollectionView - コア データ バインディング - ウィンドウのサイズを変更しないと表示されない

私は NSCollectionView のカスタマイズで大きな進歩を遂げましたが、ここやウェブ全体で光ったヒントのおかげで、誰かが助けてくれることを願って少し苦労しています. ビデオ ファイルに関する情報を含む Core Data エンティティと、これらの各ビデオのサムネイル イメージ プレビューを表示する NSCollectionView があります。NSCollectionView でバインディングをセットアップしました。

バインディングをセットアップする最初の試みで、配列コントローラーをクラス モードでセットアップし、そのコンテンツを NSMutableArray に結び付けました。それらを表示させるために、配列コントローラーで addObject を実行していました。これは、ロードするオブジェクトが多い場合にかなり時間がかかるという事実を除けば、問題なく機能します。

だから... NSCollectionView を Core Data に直接バインドできるのに、すべてのオブジェクトを配列にコピーするのはばかげているように思えました。ArrayController をエンティティ モードに変更し、Managed Object Context をセットアップして、App Delegate の managedObjectContext を指すようにしました。アプリケーションを起動すると、ウィンドウが画面に表示されるまでに遅延が発生します。実際、windowDidLoad で行っている他の処理はすぐに処理されますが、ウィンドウが表示されるまでにさらに 5 ~ 10 秒かかります。完了すると、NSCollectionView に何も表示されなくなります。

誤ってウィンドウのサイズを変更し、すべてのアイテムがコレクション ビューに表示されるまで、最初は機能していないと思っていました。[collectionView setNeedsDisplay:YES] を呼び出すことができるように、ウィンドウが実際に表示されるタイミングを知る方法があるかどうかを確認しようとしましたが、機能しないか、適切な場所で呼び出していません。

オブジェクトが表示されない理由を知っている人はいますか? また、ウィンドウがすぐに表示され、コレクション ビューがコア データからアイテムをロードするようにしたいと考えています。Core Data から直接ロードすると、項目を配列にコピーするよりもはるかに高速に見えます。バインディングは IB でセットアップされているため、表示するものはあまりありませんが、ご覧になりたいコードを投稿していただければ幸いです。:)

ありがとう!

0 投票する
1 に答える
402 参照

cocoa - コアデータは、1つのアイテムが静的なNSCollectionViewまたはNSTableViewにバインドされていますか?

NSCollectionViewコアデータモデルにバインドし(by NSArrayController)、最初のアイテムを表示せずにNSArrayContollerカスタムビュー( )を表示することは可能NSButtonですか?

NSCollectionViewその後、の2番目のアイテムはの最初のアイテムを支払いNSArrayControllerます。)

0 投票する
1 に答える
2150 参照

objective-c - CocoaアプリからFinderにドラッグアンドドロップします

いくつかのファイルを表示 するNSCollectionViewがあります。ここに画像の説明を入力してください

私が欲しいのは...

  1. 1つのファイルを選択できる。
  2. このファイルをドラッグして、デスクトップまたは別のFinderウィンドウにドロップできます。

ファイルアイコンはNSImageViewによって表示されます。

そのような機能を提供するための良いアプローチは何でしょうか?

どうもありがとう!

0 投票する
1 に答える
2460 参照

cocoa - ビューベースのNSTableViewとNSCollectionView?

私はセルベースのNSTableView のフライウェイト アプローチを理解しており、NSCollectionView との違いも理解していると思います。(セルベース) NSTableView と NSCollectionView の違い

ただし、ビューベースのNSTableView と NSCollectionViewの違いはあまり明確ではありません。

tableView のリスト (最大 1 列のグリッド) をエミュレートし、個人的な設定を除外できるアイテムを (つまり、グリッド レイアウトで) 表示する NSCollectionView の柔軟性により、なぜ誰かが NSCollectionView よりも (ビューベースの) NSTableView を選択するのでしょうか?

0 投票する
0 に答える
350 参照

macos - コレクションに新しいアイテムが追加されるたびに、NSCollectionViewItemのCALayerが点滅(および非表示)します

NSCollectionViewItemは別のxibファイルにあります。画像ビューがあります。以前は、に直接画像を設定していましたNSImageView。UIは正常に機能しました。

今、私はにを追加しましCALayerNSImageView。画像を表示したり、ある画像から別の画像に移行したりするために使用します。

問題は、ユーザーが新しいを追加するたびにNSCollectionViewItemです。まばたき/点滅し、時には完全に消えますCALayersNSCollectionViewItemこれはランダムに発生します。CALayerすべてのアイテムが消えることがあります。CALayerまた、消えるアイテムはごくわずかです。

次に、別のアイテムを追加するかNSCollectionView、コンテナのウィンドウのサイズを変更してサイズを変更するNSCollectionViewと、すべてのアイテムが再シャッフルされます。CALayer戻ってきますが、常にではありません。これもランダムです。一部のアイテムはCALayerなしのままです。

私の推測では、のアニメーションはのCALayerNSCollectionViewを台無しにしています。NSCollectionViewItem

何が起こっているのか分かりますか?CALayerで使用するサンプルコード/オープンソースプロジェクトはありNSCollectionViewItemますか?

どんなに小さな助けでも、どんなヒントでも、高く評価されます。

0 投票する
1 に答える
751 参照

objective-c - NSCollectionViewItemにマウスの右下メニューを追加する方法

質問があります。NSCollectionViewItemにマウスの右下メニューを追加するにはどうすればよいですか。試みとして、AppleのデモアプリIconCollectionも使用します。NSMenuをIconViewPrototype.xibにドラッグして、IBのビューのメニューアウトレットに接続しようとしましたが、ビルドして実行するときに、マウスを右クリックしても何も起こりませんでした。 NSBoxはNSViewのサブクラスでもあり、マウスの右下メニューがサポートされている必要があります。

0 投票する
2 に答える
681 参照

cocoa - 複数選択が有効になっている場合、ドラッグする前の NSCollectionView の煩わしい遅延

NSCollectionView多数のファイルを表示する基本的な Cocoa アプリがあります。コレクション ビューでは、一度に複数のアイテムを選択できます。

問題は、2 つ以上のアイテムを選択してコレクション ビューの外にドラッグするには、ドラッグを開始するまで約 1 秒間クリック アンド ホールドする必要があることです。

クリックしてすぐにドラッグすると、代わりにコレクション ビューが選択を変更します (つまり、「選択」の四角形を描画します)。

ドラッグする前にクリックアンドホールドする必要があることを理解するのに少し時間がかかりました。私のアプリの多くのユーザーがこれを理解しておらず、ドラッグが機能しないことに不満を持っていることはすでにわかっています。

例: Apple のサンプル コードにも問題があります: https://developer.apple.com/library/mac/#samplecode/IconCollection/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004477

興味深いことに、Finder の「アイコン ビュー」は期待どおりに機能します (ドラッグは遅延なく機能します)。アンダーを使用しているかどうかはわかりませんNSCollectionViewが、可能性が高いようです。

0 投票する
3 に答える
2083 参照

cocoa - Accessing controls of views of NSCollectionView

I'm using an NSCollectionView to display various objects. The whole things works rather well, except for one annoying thing. I cannot figure out how to access the various controls on the view used to represent each object in the collection.

Here's the setup:

  • I have dragged an NSCollectionView into my view in IB.
  • I made a custom subclass of NSCollectionViewItem. Mapped my class in IB.
  • I made a custom subclass of NSBox to act as the view for each object in the collection. Also mapped this class in IB and connected it to the view property of my NSCollectionViewItem subclass.
  • I made all the bindings in IB to display the correct information for each object.

The view:

enter image description here

The resulting collection view:

enter image description here

Reasoning that that my subclass of NSCollectionViewItem is basically a controller for each view in the collection, I made referencing outlets of the various controls in the view in my controller subclass:

When I inspect any instance of SourceCollectionViewItem in the debugger, all the properties show up as nil despite the fact that I can actually see them on my screen and that everything is displayed as it should be.

My setup was inspired by Apple's sample app IconCollection.

I am obviously missing something. What?

EDIT: I found various posts hinting at a similar issue: CocoaBuilder.com and this question on SO.

EDIT: Just to be complete: this post deals with the subject as well and delivers a solution based on a combination of the options mentioned in the accepted answer.

0 投票する
1 に答える
524 参照

objective-c - NSCollectionView に NSPopover を表示しますか?

(注: 質問は以前にも出されており、1 年以上前に決定的ではない結果が得られました。願わくば、もう少し詳しく知り、解決できますか?)

ダブルクリックしたときに NSCollectionItem の上に NSPopover を表示しようとしています。私の NSCollectionView は正しく設定され、入力を受け取ります。

(コードをコピーして他の NSView サブクラスに貼り付けると、問題なく動作します。NSCollectionView には、混乱しているように見えるものがあります。)

コード:

BIECollectionViewItem.h

BIECollectionViewItem.m

mouseDown イベントにログステートメントを追加すると、イベントが発生していることが確認できます。しかし、NSPopover は表示を拒否します。

NSPopover を NSCollectionView の上に表示する方法を知っている人はいますか?

0 投票する
1 に答える
555 参照

objective-c - NSCollectionViewItem内のボタンのアクションを設定する方法

NSCollectionViewを使用して、バインドされた配列コントローラーの画像のリストを表示していました。また、各画像の左上隅に削除ボタンを追加して、誰かがボタンを押すと、対応するオブジェクトが削除されるようにします。アレイコントローラー。

ただし、NSCollectionViewItemをカスタムクラスのサブクラスにし、削除ボタンのアクションをカスタムクラスで記述されたメソッドに設定しようとすると、次のようなエラーが報告されます。

'アクションXXX:をクラスNSCollectionViewItemのターゲットに接続できませんでした'

また、NIBファイルにアレイコントローラーオブジェクトを追加しようとして失敗しました。

すべてをOKにするにはどうすればよいですか?