問題タブ [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 投票する
1 に答える
342 参照

objective-c - 大きな配列でValueurlをバインドすると、ユーザーインターフェイスが遅くなります

HTTP経由でリモートサーバーから返される大きなデータセット(約3500個のオブジェクト)があります。現在、データはNSCollectionViewに表示されています。データの1つの側面は、データを表す小さな画像のサーバーへのパスパックです(簡単にするためにサムネイルを考えてください)。

バインディングは、すでに返されたデータに対して素晴らしく機能し、valueurlバインディングを介して画像をバインドするのは簡単です。ただし、データセットをスクロールするときのユーザーインターフェイスは非常に遅くなります。これによりNSCollectionView、現在表示可能な画像の表示に使用される画像データだけでなく、すべての画像データを取得しているように見えます。

Cocoaコントロールは、遅延読み込みによって実際にユーザーインターフェイスに出力されている情報のデータのみを取得するのに十分スマートであるという印象を受けました。これは確かに当てはまるようですNSTableViewが、私はこの考えを誤解している可能性があります。

valueurlバインディングは遅延して動作する必要があり、さらに、それは遅延して動作する必要がありNSCollectionViewますか?

キャッシングメカニズムを作成することはできますが(実際、別のアプリケーション用にそのようなものがすでに用意されています。非同期NSURLConnectionからのデータをNSImageに入力することに興味がある場合は、こちらの投稿を参照してください)。ユーザーはデータセットを頻繁に変更する可能性があり、データの小さなサブセットのみが必要になる可能性があるため、この特定の実装を行う必要はありません。

提案されたアプローチはありますか?

ありがとう!

アップデート

さらにテストを行った後、データセットをスクロールするアクションによって各画像がサーバーから要求されるため、問題が発生したようです。すべての画像がデータセットに渡されると、応答は非常に高速になります。

質問...スクロール中にvalueurlフェッチをオフにし、スクロールが終了したときに再びオンにする方法はありますか?

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

cocoa - NSCollectionView を使用して複数のビューにイベントを転送する方法

コレクション ビューからそれに含まれるすべてのビューにキーボード イベントを転送しようとしています。イベントを各ビューに転送できるように、ビューの配列を取得する方法を見つけようとしましたが、これを行う方法が見つかりませんでした。私はこれについて間違った方法で進んでいると感じています。どんな方向でも大歓迎です。

ありがとうございました、

チャーリー

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

cocoa - Automator のワークフロー ビューを模倣するには?

Automator のAMWorkflowView.

私が達成したい基本的な機能:

  • サブビューの配置
  • 展開/折りたたみ状態でのサブビューの表示
  • 複数選択
  • ドラッグアンドドロップ

Cocoa に慣れるために、NSView主にカスタム サブビューのコンテナーとして機能し、それらの配置と複数選択を処理するカスタムから始めました。サブビューも のサブクラスでありNSView、ボタン、ラベル、ポップアップ メニューなど、さまざまな量のビュー自体が含まれているため、異なる高さを持つことができます。これは非常にうまく機能しましたが、先に進む前に、MVC パターンに従ってすべてが整頓されていることを確認したいと思います。

ビューコンテナの実装を容易にするクラスがすでにCocoaにあるのではないかと思いNSCollectionViewます。 ただし、異なるサイズのビューを に表示する(簡単な) 方法はないようNSCollectionViewです。カスタムの実装を続行する必要がありますかNSView(おそらく、NSArrayController選択と並べ替えのサポートに を使用します)、またはより良い方法はありますか?

どんな助けでも大歓迎です

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

objective-c - NSCollectionViewサブクラスは、setNeedsDisplayにもかかわらず、ドラッグセッション中にdrawRectを呼び出しません

ご挨拶、

私は、drawRectがNSCollectionViewサブクラスでいつどのように呼び出されるのかについて戸惑っています。

コレクション内でNSCollectionViewItemsを移動するためにドラッグアンドドロップ操作を実装し、ドロップが終了する場所を視覚的に示したいと思います。

サブクラスは、ドラッグセッション中にdrawRectを呼び出しません。(スクロール中に行います)

これは意図した操作ですか?この動作を適切に実装する方法に関するヒントは大歓迎です。

次のコードの完全なxcodeプロジェクトは、http://babouk.ovh.org/dload/MyCollectionView.zipで入手できます

よろしくお願いします

更新: サンプルコードが間違っています。registerForDraggedTypesを呼び出すと、コレクションが期待どおりにdrawRectをトリガーします。

コードサンプル:

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

objective-c - NSCollectionViewサブクラスでのドラッグ操作の受け入れ

NSCollectionViewをサブクラス化し、Finderからドラッグされたファイルを受信しようとしています。適切な値を受け取っdraggingEntered:て返していますが、受け取っていprepareForDragOperation:ません(プロセス内のその後のメソッドも受け取りません)。私がここで見逃している明らかな何かがありますか?

コード:

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

cocoa - cocoa バインディングを使用して、コレクション ビューで Web ビュー上に Web ページを表示する

このリンクで与えられたサンプル例を試しました - Collection View Programming Guide

それは簡単で、うまくいきました。それを参考にして、Webビューのコレクションビューを表示し、各Webビューの上にいくつかのWebページを表示する簡単なアプリケーションを試しました。

モデル クラスには、NSString *pageName と NSURL *pageURL の 2 つのプロパティがあります。

次に、上記のチュートリアルに記載されているすべての手順に従い、必要な変更を加えましたが、手順に引っ掛かりました-

Web ビューをコレクション ビュー アイテムにバインドする方法は?

バインディング タブでは、編集可能、非表示、ツール ヒントの 3 つの可能性が示されますが、いずれも機能していません。

誰かが私の要件を達成する方法を提案できますか?

ありがとう、

ミラージ

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

cocoa - それを含むビューが表示される前に、NSCollectionView の描画を終了させるにはどうすればよいですか?

私は自分のアプリケーション (10.5 用にビルド) の UI をクリーンアップしようとしていますが、ライブラリにスワップするときにコンテンツをリロードすると、アイテムを表示する nscollectionview が古いコンテンツをフェードアウトする前にフェードアウトすることはかなり面倒です。古い/新しいアイテムのフェードイン/フェードアウトは気にしませんが、ビューのスワッピングをプログラムした方法では、nscollectionview を含む nsview がメイン ウィンドウに挿入される前にライブラリのリロードが行われるはずです。 .

誰もが前にこの種の問題を抱えていましたか?

アプリケーションのさまざまな部分からライブラリへのスワップがどのように行われるかの要約版を次に示します。

メインコントローラーで:

ライブラリ コントローラで:

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

cocoa - NSCollectionView内のアイテムのインデックス

コレクションビューで、各アイテムのインデックスを生成する必要があります。アイテムが並べ替えられると、このインデックスを新しい位置で更新する必要があります。

データは、マネージドNSArrayControllerのコアデータエンティティです。考えられる解決策に最も近いのは、このメソッドをエンティティクラスに実装し、representedObject.dynamicIndexを使用してUIにバインドすることです。

このソリューションはせいぜい大ざっぱであり、コレクションビューの順序を必ずしも反映していないため、実際には機能しません。

NSCollectionViewでアイテムインデックスを生成または取得するためのモデル/メカニズムを持っている人はいますか?

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

cocoa - NSCollectionView への明確な例と最良のアプローチ

これを Web で探しましたが、NSCollectionView を正常に実装する方法に関する明確なチュートリアルが見つかりませんでした。どのように進めればよいですか?

Interface Builder で NSCollectionView をメイン ビューにドラッグすると、ドキュメント ウィンドウに 2 つの新しいビューがあることがわかります。1 つは collectionView 内の実際の NSView であり、もう 1 つはそれぞれの NSView プロトタイプです。コレクション内に表示される要素の。

でも、これからどうするかは考えていません。

どんな助けでも大歓迎ですが、とにかく事前に感謝します。

――アルベ

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

objective-c - OSX10.5以前のココトロンのNSCollectionViewの代替?

NSCollectionViewOS X 10.5 で導入されましたが、Cocotron にはまだ実装されていません。

オンライン サービス用に適切にパッケージ化されたデータ ファイルを作成できる小さなアプリを実装しようとしています。このファイルは管理者によってアップロードされます。より具体的には、ユーザーは入力ファイルと出力ファイルをウィンドウにドラッグして、入力データと出力データのペアのコレクションを作成します。

現在のアイデアは、ユーザーがファイル名からファイルをドラッグし、ファイル名が入力または出力ファイル名 (デフォルトでは入力) であるかどうかを検出し、入力および出力用のアイコンとファイル名を含むビューがコレクション ビューに追加されるというものです。次に、2 番目のファイルが「その他」のアイコンにドロップされます。

NSCollectionViewItem のビュー

ただし、NSCollectionView10.5 より前のバージョンでは表示されず、私のユーザーのほとんどは Mac を持っていないため、Cocotron でビルドされたアプリケーションを提供する必要があります。それだけでなく; 私はまだ KVC/KVO を完全には理解していません。自分のコードが行うことをすべて理解する必要があります。したがって、に代わるものが必要NSCollectionViewです。

どのような代替手段を使用する必要がありNSCollectionViewますか? (直感的な解決策は高く評価されます。上記の私のアイデアの説明に制限されているとは思わないでください。)