問題タブ [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.
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 でセットアップされているため、表示するものはあまりありませんが、ご覧になりたいコードを投稿していただければ幸いです。:)
ありがとう!
cocoa - コアデータは、1つのアイテムが静的なNSCollectionViewまたはNSTableViewにバインドされていますか?
NSCollectionView
コアデータモデルにバインドし(by NSArrayController
)、最初のアイテムを表示せずにNSArrayContoller
カスタムビュー( )を表示することは可能NSButton
ですか?
(NSCollectionView
その後、の2番目のアイテムはの最初のアイテムを支払いNSArrayController
ます。)
objective-c - CocoaアプリからFinderにドラッグアンドドロップします
いくつかのファイルを表示
するNSCollectionViewがあります。
私が欲しいのは...
- 1つのファイルを選択できる。
- このファイルをドラッグして、デスクトップまたは別のFinderウィンドウにドロップできます。
ファイルアイコンはNSImageViewによって表示されます。
そのような機能を提供するための良いアプローチは何でしょうか?
どうもありがとう!
cocoa - ビューベースのNSTableViewとNSCollectionView?
私はセルベースのNSTableView のフライウェイト アプローチを理解しており、NSCollectionView との違いも理解していると思います。(セルベース) NSTableView と NSCollectionView の違い
ただし、ビューベースのNSTableView と NSCollectionViewの違いはあまり明確ではありません。
tableView のリスト (最大 1 列のグリッド) をエミュレートし、個人的な設定を除外できるアイテムを (つまり、グリッド レイアウトで) 表示する NSCollectionView の柔軟性により、なぜ誰かが NSCollectionView よりも (ビューベースの) NSTableView を選択するのでしょうか?
macos - コレクションに新しいアイテムが追加されるたびに、NSCollectionViewItemのCALayerが点滅(および非表示)します
私NSCollectionViewItem
は別のxibファイルにあります。画像ビューがあります。以前は、に直接画像を設定していましたNSImageView
。UIは正常に機能しました。
今、私はにを追加しましCALayer
たNSImageView
。画像を表示したり、ある画像から別の画像に移行したりするために使用します。
問題は、ユーザーが新しいを追加するたびにNSCollectionViewItem
です。まばたき/点滅し、時には完全に消えますCALayers
。NSCollectionViewItem
これはランダムに発生します。CALayer
すべてのアイテムが消えることがあります。CALayer
また、消えるアイテムはごくわずかです。
次に、別のアイテムを追加するかNSCollectionView
、コンテナのウィンドウのサイズを変更してサイズを変更するNSCollectionView
と、すべてのアイテムが再シャッフルされます。CALayer
戻ってきますが、常にではありません。これもランダムです。一部のアイテムはCALayerなしのままです。
私の推測では、のアニメーションはのCALayerNSCollectionView
を台無しにしています。NSCollectionViewItem
何が起こっているのか分かりますか?CALayer
で使用するサンプルコード/オープンソースプロジェクトはありNSCollectionViewItem
ますか?
どんなに小さな助けでも、どんなヒントでも、高く評価されます。
objective-c - NSCollectionViewItemにマウスの右下メニューを追加する方法
質問があります。NSCollectionViewItemにマウスの右下メニューを追加するにはどうすればよいですか。試みとして、AppleのデモアプリIconCollectionも使用します。NSMenuをIconViewPrototype.xibにドラッグして、IBのビューのメニューアウトレットに接続しようとしましたが、ビルドして実行するときに、マウスを右クリックしても何も起こりませんでした。 NSBoxはNSViewのサブクラスでもあり、マウスの右下メニューがサポートされている必要があります。
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
が、可能性が高いようです。
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 theview
property of myNSCollectionViewItem
subclass. - I made all the bindings in IB to display the correct information for each object.
The view:
The resulting collection view:
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.
objective-c - NSCollectionView に NSPopover を表示しますか?
(注: 質問は以前にも出されており、1 年以上前に決定的ではない結果が得られました。願わくば、もう少し詳しく知り、解決できますか?)
ダブルクリックしたときに NSCollectionItem の上に NSPopover を表示しようとしています。私の NSCollectionView は正しく設定され、入力を受け取ります。
(コードをコピーして他の NSView サブクラスに貼り付けると、問題なく動作します。NSCollectionView には、混乱しているように見えるものがあります。)
コード:
BIECollectionViewItem.h
BIECollectionViewItem.m
mouseDown イベントにログステートメントを追加すると、イベントが発生していることが確認できます。しかし、NSPopover は表示を拒否します。
NSPopover を NSCollectionView の上に表示する方法を知っている人はいますか?
objective-c - NSCollectionViewItem内のボタンのアクションを設定する方法
NSCollectionViewを使用して、バインドされた配列コントローラーの画像のリストを表示していました。また、各画像の左上隅に削除ボタンを追加して、誰かがボタンを押すと、対応するオブジェクトが削除されるようにします。アレイコントローラー。
ただし、NSCollectionViewItemをカスタムクラスのサブクラスにし、削除ボタンのアクションをカスタムクラスで記述されたメソッドに設定しようとすると、次のようなエラーが報告されます。
'アクションXXX:をクラスNSCollectionViewItemのターゲットに接続できませんでした'
また、NIBファイルにアレイコントローラーオブジェクトを追加しようとして失敗しました。
すべてをOKにするにはどうすればよいですか?