問題タブ [nscollectionviewitem]

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 に答える
489 参照

objective-c - NSCollectionViewItem'view の NSImageView が nil なのはなぜですか?

IB では、 aNSCollectionViewとそのNSCollectionViewItemおよびNSViewに属するa を作成します。私は aと aで構成されますNSCollectionViewItem。ココア バインディングを使用してそれらの値を設定します。カスタム クラスを IB に設定します。クラスでは、その関数を書き直し ます。コードは次のとおりです。NSCollectionItemNSImageViewNSTextFieldNSImageViewNSCollectionItemNSCollectionViewItemsetSelected:(BOOL)flag

NSViewが描画関数を呼び出すときに境界線の色を変更したい.私が作成したNSViewクラスIBOutletsでは、それらをIBに接続します.しかし、描画関数が呼び出されると、コードを使用しますNSImageViewNSTextField

結果は nil です。選択した NSCollectionViewItem の imageView を取得できないのはなぜですか? どこで間違いを犯しますか?助けてください、ありがとう!

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

macos - NSCollectionView は並べ替えをアニメーション化しません

スライダーを使用してコレクション アイテムのアイテム サイズを更新しています

ただし、並べ替えアニメーションを実行したくありません (セルは新しい位置に表示されるだけです)。

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

objective-c - NSCollectionView 内で NSTableView をバインドする

ビューを に正常にバインドできましたがNSCollectionView、モデルがビュー自体に正しくバインドされていません。私のモデルにはいくつかのプロパティが含まれています:

モデル クラスの配列コントローラーをプログラムでバインドすることができ、データ配列に正常にバインドされました。

モデルの配列をNSCollectionViewビューを描画する に正常にバインドできましたが、個々のビューごとにモデルをビュー内の にバインドしたいと考えてNSMutableArrayNSTableViewます。にバインドしているため、プログラムでこれを行う方法はないと思いますCollection View Item.representedObject。私はあなたができるとは思わないCollection View Item.representedObject.dataArrayController.arragnedObjects

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

cocoa - isOpaque が親 drawRect への受け渡しを停止しない

Cocoa とそのビューの再描画階層に問題がありました。

現在、メーター スタイル コントロールで (オーディオ) レベルの表示をテストしており、Apple の MatrixMixerTest サンプル プロジェクトの MeteringView クラスを使用しています。このクラスはメーターを描画し、変更された部分のみを描画する非常に効率的なクラスのようです。

私のプロジェクトは 2 つの分割ビューに分割されています。一部は NSCollectionViews (Scrollview、Clipview) で、他は静的ビューのみです。これらの「静的」ビューにメーターを追加すると、これらのビューが setNeedsDisplay:YES を呼び出したときに正常に動作します。メーターが CollectionView アイテムのビューに追加されるとレンダリングされますが、描画された「古いレベル」の部分とそのコーナー/背景が失われます。CollectionView アイテムも再描画されるように呼び出され(背景画像があります)、すべてがなくなったため、これが発生すると思います。現在変更中の部分を描画しています(描画は機能します)。

アイテム自体が再描画されるのを防ぐ方法はありますか? または、それらのビューにも背景画像がありますが、メーターを超えて描画されないため、これらの静的ビューで発生しない理由がわかりません。

CollectionView には、「通常の」ビューよりもいくつかのトリックや違いがありますか?

編集: isOpaque (MeteringView isOpaque = YES) について読んだ後、yes に設定されている場合、親ビュー drawRect を呼び出すべきではないことを意味します。これは静的ビューでは機能します。これらの MeteringView は親の drawRect を呼び出しませんが、CollectionView の親は呼び出します。どうしてか分かりません。

編集 2:このトピックに別のタイトルを付けました。これは、MeteringView の isOpaque=YES が CollectionView の親 drawRect の呼び出しを停止していないためです。通常のビューでは機能しています。知っておくべきことがいくつかありますか?それが問題なので、CollectionView アイテムの再描画を停止する必要があります。

よろしくお願いします

ベンジャミン

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

objective-c - Cocoa - NSCollectionView の NSButton に presentedObject を使用する

設定

私は持っていNSCollectionViewます。にチェックボックスがありますView PrototypeCard Titleとが入力されるようにバインディングを正常にセットアップしましたaction。(下の画像1)

ゴール

CardModelチェックボックスをクリックすると、View Prototypeすでにアクセスできる特定のものにアクセスする関数を実行したいと思います。次に、それに応じてデータを操作します。

リサーチ

私はSOでこの記事を見つけました: NSCollectionViewItem NSButton click のpresentedObject値を取得してください。これは私の状況をかなりよく説明しています。残念ながら、答えは特定のコードなしです。提案されているのは次のとおりです。

したがって、最初に、ボタンのセルの表現されたオブジェクトを、ボタンを所有するコレクション ビュー アイテムに設定します。(nib エディターでこれを行うことができます。) 次に、アクション メソッドで、ボタンのセルを取得し、次にセルの表現オブジェクト (アイテム)、アイテムの表現オブジェクトを取得します。

単純に思えますよね?

試みられた解決策

メソッドを作成cardCheckBoxClicked:し、チェックボックスに接続します。

上記のアドバイスに従って、button cellのコンセントrepresentedObjectをに接続しCard Collection View Itemます。(画像2)

Card Collection View Item次に、コード内のを取得しようとrepresentedObjectします。

からMainWindowController.h:

エラー

チェックボックスをクリックすると、次のエラーが表示されます。

質問!

では、の表現されたオブジェクトにアクセスするにはどうすればよいでしょうか? button cell上記のアドバイスを誤解していましたか?必要なデータにアクセスするにはどうすればよいですか?

画像(参考)

バインディングの例 ここに画像の説明を入力

表現されたオブジェクト接続 ここに画像の説明を入力

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

objective-c - NSCollectionViewItem ボタンは常に ArrayController から最初の項目を返します

NSCollectionViewItem にバインドされた NSArrayController を持つ NSCollectionView があります。

Item 自体にはボタン (Item の全スペース) が含まれます。

ボタンがクリックされたとき、どのアイテムボタンがクリックされたかを判断しようとしていますが、できません:

常に最初のアイテムの名前を返します。

どの項目のボタンがクリックされたかを判断するにはどうすればよいですか?

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

objective-c - Xcode: NSCollectionViewItem には imageView または textField という名前のアウトレットがありません

xib グラフィカル ユーザー インターフェイスの imageView と textField を、NSCollectionViewItem (アプリケーション キットの要素) の属する Outlets にリンクしたいと考えています。ただし、バインディングをリンクしているときに、次のメッセージがポップアップ表示されます。

「Xcode は、クラス NSCollectionViewItem で @property (assign) IBOutlet NSImageView *imageView NS_AVAILABLE_MAC(10_7); という名前の Key Value Coding 準拠のプロパティを見つけることができません。」

したがって、私にとってこれらのオブジェクトを接続することはできません。したがって、テキスト フィールドまたはイメージ ビューの参照アウトレットがありません。

別の xib には、同じバインディングが既に存在します。しかし、それらは白い感嘆符でマークされ、「NSCollectionViewItem には imageView という名前のアウトレットがありません」という奇妙なメッセージも表示されます。

誰も問題を解決する方法を知っていますか? 素晴らしいことだ。

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

macos - カスタム ビューを持つ NSCollectionViewItem

カスタム ビューを持つ NSCollectionViewItems のセットを持つ NSCollectionView を作成しようとして苦労してきました。項目ビューのコントロールが標準の AppKit コントロールである場合、コードは正常に機能しますが、カスタム NSView を追加すると、Interface Builder からバインドする方法がありません。

インターネットを検索するのに数時間を費やすことから、これを解決するための多くのオプションがあるように見えますが、すべてが専門的なようです. 項目ビューで CustomImage * を指定して、そのカスタム ビューで画像プロパティを設定する方法を示す簡単なサンプル コードはありますか?

各項目のデータを提供するモデルは次のとおりです。

NSCollectionViewItem サブクラスは次のとおりです。

ここで、CustomImage は単に NSImageView のサブクラスです。

NSCollectionView をサブクラス化し、newItemForRepresentedObject をオーバーライドして、いくつかの回答が提案され、そこに割り当てようとしました。

しかし、これはバインド呼び出しで「名前」が存在しないというエラーで爆発しました。

理論的には、これは非常に簡単に解決できるはずですが、私が見つけた答えのどれもこれを明確にしません。別の方法は、NSCollectionView を捨てて、GitHub でより単純な代替品の 1 つを使用することですが、これが最初に解決可能かどうかを最後に確認したいと思います。

ありがとう!

0 投票する
8 に答える
8372 参照

cocoa - Cocoa - NSCollectionView と NSCollectionViewItem の間のリンクはどこですか? Xcode 6 バグ?

NSCollectionView をビューにドラッグすると、NSCollectionViewItem がストーリーボードに表示され、浮遊します。

複数の NScollectionView を同じビューにドラッグするとします。NSCollectionViewItems がたくさんあります。コレクションビューは、どの NScollectionViewItem がそれに属しているかをどのように認識しますか? インターフェースビルダーで見ることができる2つの間の接続はありますか? インターフェイスビルダーに何も表示されませんか? どこでそれを見ることができますか?

編集: どうやらこれは Xcode のバグのようです。ストーリーボードに NSCollectionView を追加すると、NSCollectionViewItem へのリンクがなく、それらの間で itemPrototype アウトレットを接続することは不可能のようです。

このようなバグについて Apple に問い合わせたところ、「これは OS X の Storyboards に関する既知の問題です。代わりに Xibs を使用してください」という回答がありました。