問題タブ [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 に答える
449 参照

objective-c - 別のスレッドから NSCollectionView を更新すると、空白になります

私の Mac アプリケーションには NSCollectionView があり、いくつかのアイコンが含まれています。その間、いくつかの操作をキューに入れるためのタスク スケジューラとして NSOperationQueue を使用しています。1 つの NSOperation で、NSCollectionView のコンテンツを変更します。コンテンツが変更されると、ビューはすぐに更新されます。

メインスレッドで更新すると、完全に機能します。NSOperation::main() の最後に同じソース コードを配置すると、NSCollectionView は完全に空白になります。

これはある種のバグですか、それとも私のやり方が間違っていますか?

ありがとう!

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

xcode - プログラムでゼロから NSCollectionView を作成する方法は?

NSCollectionView私が今まで見た Cocoa API の中で最も不可解な部分の 1 つです。ドキュメンテーションは貧弱で、多くの可動部分があり、その多くは Interface Builder で実装されることが多いため、ドキュメンテーションが困難になります。

NSCollectionViewテキスト フィールドまたはボタンごとに異なるタイトルを持つ Xcode を使用せずに、テキスト フィールドまたはボタンのいずれかを表示する最も単純なケースを作成するためのサンプル コードを提供してください。windowデフォルトのIBOutletを持つ新しい Xcode プロジェクトを想定します。

この例では、データ ソースが変更されたときに NSCollectionView を更新するためのバインディングは必要ありません。プロトタイプ オブジェクトのグリッドを表示し、各オブジェクトのタイトルを何らかの値に設定するだけです。

これを行う方法の良い例を多くの人が利用できるようにすることができれば、私とNSCollectionViews同じように困惑しているすべての人を助けることができると思います.

リクエストの概要

  • 新しい Xcode プロジェクトで NSCollectionView をレンダリングするサンプル コードを提供する
  • Interface Builder を使用しないでください。提供されているデフォルトのウィンドウ IBOutlet を使用してください。
  • NSCollectionView には、選択したテキスト フィールドまたはボタンが含まれている必要があります
  • ビュー内の各アイテムには異なるタイトルが必要です
  • 縛り不要

これらの要件を満たすサンプル コードがある場合は、リンクを提供してください。

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

ios - iOSのNSCollectionView

iPadアプリを開発していて、NSCollectionViewのようなものを使用したいと思います。それを行うサードパーティのライブラリがいくつかあります。問題は、それらのどれもiOS4.xをサポートしていないように見えることです。私は本当にこのバージョンのiOSをサポートする必要があります。iOS 4.0をサポートするiOS用のNSCollectionView風のコントロールを知っている人はいますか?

ありがとう!

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

macos - NSCollectionViewで選択長方形の描画を無効にするにはどうすればよいですか?

私は、NSCollectionViewでかなりうまく稼働していますNSArrayController。私のコレクションビューアイテムは複数選択可能に構成されており、満足しています。ただし、コレクションビュー内でマウスドラッグイベントが発生すると、選択長方形が描画されます。この選択長方形の描画を無効にして、複数の選択を保持するにはどうすればよいNSCollectionViewですか?助けてくれてありがとう!

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

objective-c - NSCollectionView で空の選択を作成しない

NSCollectionViewココア アプリケーションでをセットアップしました。ビューの1つが選択/選択解除されたときにNSCollectionViewItemカスタムを送信するために、コレクションビューをサブクラス化しました。NSNotificationこの通知が投稿されたときに、コントローラー オブジェクト内で通知を受け取るように登録します。このメソッド内で、選択されたばかりのビューにそれが選択されていることを伝え、再描画するように伝えます。これにより、それ自体が灰色になります。

NSCollectionViewItemサブクラス:

コントローラ クラス (-(void)awakeFromNibメソッド内):

そして-(void)selectionChanged:(NSNotification *)notification方法:

このコードを含むアプリケーションでは、コレクション ビュー内で常に空の選択がないようにする必要があります。ここで私の問題が発生します。ビューの選択がいつ変更されたかを確認し、選択がない場合は再選択し、を使用してビューを手動で選択しようとしましNSCollectionView

-(void)setSelectionIndexes:(NSIndexSet *)indexes

しかし、コレクション ビューで空の選択が行われる状況が常に発生します。

NSCollectionViewそれで、空の選択が?で発生するのを防ぐ簡単な方法があるかどうか疑問に思っていました。Interface Builder にチェックボックスがありません。

前もって感謝します!

ベン

アップデート

結局、 my をサブクラス化しNSCollectionView、メソッドをオーバーライドしました- (void)mouseDown:(NSEvent *)theEvent[super mouseDown:theEvent];クリックがサブビューの1つであった場合にのみ、メソッドを送信しました。コード:

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

objective-c - NSBoxを使用してNSCollectionViewで選択したアイテムを強調表示する

NSCollectionViewを使用して現在選択されているアイテムを表示するように更新するにはどうすればよいNSBoxですか?選択範囲をリストに表示することは基本的なことのように思えますが、私はこれに関してさまざまな問題を抱えています。

私はこの質問を読み、Appleのサンプルコードも調べました。これを行うにはいくつかの方法があるようです。

  1. のサブクラスNSCollectionViewItemと特別な「プロトタイプビュー」を使用します。
  2. を使用しNSBoxます。

NSBoxシンプルに見え、公式コードサンプルでも使われているので使いたいです。

これは、 alternegroによる次の引用で説明されているように明らかに行われています。

別の背景色でハイライトとして十分な場合は、コレクションアイテムビューのルートアイテムとしてNSBoxを使用できます。NSBoxに選択したハイライトカラーを入力します。塗りつぶしが機能するように、NSBoxをカスタムに設定します。NSBoxを透過に設定します。

NSBoxのtransparency属性をFileOwner(Collection Item)の選択された属性にバインドします。透過バインドの値トランスフォーマーをNSNegateBooleanに設定します。

私は最初の部分で立ち往生しています:「NSBoxをあなたの(原文のままの)コレクションアイテムビューのルートアイテムとして使用してください」。FoobarBox 「カスタムクラス」をから継承するに変更しようとしましたNSBoxが、背景色を青に変更したり、透明度をバインドしたりできないため、役に立たないようです。NSCollectionVuewで選択を表示する方法についてのポインタをいただければ幸いです。

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

objective-c - NSCollection エラー: オブジェクト NSImage から NSData を作成できません

私は 3 つのオブジェクト、2 つの NSTextFields と 1 つの NSImageView を持つ NSCollectionView を持っています。ユーザーにフォルダーを選択させてから、そのフォルダーの内容を読み取ることで、データを取得しています。ファイル名、パス、タイプ (ファイル/フォルダー) のスニフを取得し、フォルダーの場合はアイコンを取得し (NSWorkspace を使用)、ファイルの場合はイメージを取得します。(これらはすべて画像ファイルである必要があります。チェックするフィルタが用意されています)。

とにかく、テキスト フィールドにデータが入力されているため、バインドは正しいように見えますが、NSImageView はそうではなく、NSImage をモデルに渡そうとすると、このエラー メッセージが表示されます。

これを実行するたびに、次のエラー メッセージが表示されます。

誰かがこれを修正するために正しい方向に私を向けることができます...ありがとう

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

cocoa - NSCollectionView のデリゲートを変更または拡張するにはどうすればよいですか?

NSCollectionViewに準拠するデリゲートがありNSCollectionViewDelegateます。

を拡張する新しいプロトコルがありますNSCollectionViewDelegate

ここで、CollectionViewItem のコントローラー クラスで、次の方法でデリゲートのメソッドを呼び出そうとします。

「インスタンス メソッド 'doSomeWork:' が見つかりません」という警告が表示され続けます。

やってみた

しかし、「型 'id' の式で 'id' を初期化する互換性のないポインター型です。

NSCollectionViewデリゲートのプロトコルを変更する正しい方法は何ですか?

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

objective-c - NSTextField の背後にある NSCollectionViewItem

NSTextFieldのビューを持っていNSCollectionViewItemます。

をクリックするNSCollectionViewItemと、項目が選択されます。

をクリックするNSTextFieldとフォーカスが得られますがNSCollectionViewItem、テキスト フィールドの後ろにある は選択されません。

この最後の動作を変更して、テキスト フィールドがフォーカスされ、ビュー アイテムも選択されるようにします。

これを行う最善の方法は何ですか?

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

cocoa - NSCollectionViewItem のビューを条件付きで設定する

NSCollectionView配列コントローラーにバインドする があります。このアレイ コントローラには、のリストが含まれていますNSDictionary

アイテムには、ヘッダーとアイテムと呼ばれる辞書で定義された 2 つのタイプがあります。タイプがヘッダーの場合、headerView という別のビューを表示します。

このコードをNSCollectionViewItemサブクラスに入れることで、これまでのところ機能しています。

ヘッダーのフレームは、アイテムのフレームよりもはるかに小さいです。高さは約半分です。

問題は、ヘッダーとアイテムの両方が同じフレーム サイズ (より大きなフレーム) になることです。コレクション アイテムのフレームがビュー フレームと同じであることを確認するにはどうすればよいですか?