問題タブ [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 を更新すると、空白になります
私の Mac アプリケーションには NSCollectionView があり、いくつかのアイコンが含まれています。その間、いくつかの操作をキューに入れるためのタスク スケジューラとして NSOperationQueue を使用しています。1 つの NSOperation で、NSCollectionView のコンテンツを変更します。コンテンツが変更されると、ビューはすぐに更新されます。
メインスレッドで更新すると、完全に機能します。NSOperation::main() の最後に同じソース コードを配置すると、NSCollectionView は完全に空白になります。
これはある種のバグですか、それとも私のやり方が間違っていますか?
ありがとう!
xcode - プログラムでゼロから NSCollectionView を作成する方法は?
NSCollectionView
私が今まで見た Cocoa API の中で最も不可解な部分の 1 つです。ドキュメンテーションは貧弱で、多くの可動部分があり、その多くは Interface Builder で実装されることが多いため、ドキュメンテーションが困難になります。
NSCollectionView
テキスト フィールドまたはボタンごとに異なるタイトルを持つ Xcode を使用せずに、テキスト フィールドまたはボタンのいずれかを表示する最も単純なケースを作成するためのサンプル コードを提供してください。window
デフォルトのIBOutletを持つ新しい Xcode プロジェクトを想定します。
この例では、データ ソースが変更されたときに NSCollectionView を更新するためのバインディングは必要ありません。プロトタイプ オブジェクトのグリッドを表示し、各オブジェクトのタイトルを何らかの値に設定するだけです。
これを行う方法の良い例を多くの人が利用できるようにすることができれば、私とNSCollectionViews
同じように困惑しているすべての人を助けることができると思います.
リクエストの概要
- 新しい Xcode プロジェクトで NSCollectionView をレンダリングするサンプル コードを提供する
- Interface Builder を使用しないでください。提供されているデフォルトのウィンドウ IBOutlet を使用してください。
- NSCollectionView には、選択したテキスト フィールドまたはボタンが含まれている必要があります
- ビュー内の各アイテムには異なるタイトルが必要です
- 縛り不要
これらの要件を満たすサンプル コードがある場合は、リンクを提供してください。
ios - iOSのNSCollectionView
iPadアプリを開発していて、NSCollectionViewのようなものを使用したいと思います。それを行うサードパーティのライブラリがいくつかあります。問題は、それらのどれもiOS4.xをサポートしていないように見えることです。私は本当にこのバージョンのiOSをサポートする必要があります。iOS 4.0をサポートするiOS用のNSCollectionView風のコントロールを知っている人はいますか?
ありがとう!
macos - NSCollectionViewで選択長方形の描画を無効にするにはどうすればよいですか?
私は、NSCollectionView
でかなりうまく稼働していますNSArrayController
。私のコレクションビューアイテムは複数選択可能に構成されており、満足しています。ただし、コレクションビュー内でマウスドラッグイベントが発生すると、選択長方形が描画されます。この選択長方形の描画を無効にして、複数の選択を保持するにはどうすればよいNSCollectionView
ですか?助けてくれてありがとう!
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つであった場合にのみ、メソッドを送信しました。コード:
objective-c - NSBoxを使用してNSCollectionViewで選択したアイテムを強調表示する
NSCollectionView
を使用して現在選択されているアイテムを表示するように更新するにはどうすればよいNSBox
ですか?選択範囲をリストに表示することは基本的なことのように思えますが、私はこれに関してさまざまな問題を抱えています。
私はこの質問を読み、Appleのサンプルコードも調べました。これを行うにはいくつかの方法があるようです。
- のサブクラス
NSCollectionViewItem
と特別な「プロトタイプビュー」を使用します。 - を使用し
NSBox
ます。
NSBox
シンプルに見え、公式コードサンプルでも使われているので使いたいです。
これは、 alternegroによる次の引用で説明されているように明らかに行われています。
別の背景色でハイライトとして十分な場合は、コレクションアイテムビューのルートアイテムとしてNSBoxを使用できます。NSBoxに選択したハイライトカラーを入力します。塗りつぶしが機能するように、NSBoxをカスタムに設定します。NSBoxを透過に設定します。
NSBoxのtransparency属性をFileOwner(Collection Item)の選択された属性にバインドします。透過バインドの値トランスフォーマーをNSNegateBooleanに設定します。
私は最初の部分で立ち往生しています:「NSBoxをあなたの(原文のままの)コレクションアイテムビューのルートアイテムとして使用してください」。FoobarBox
「カスタムクラス」をから継承するに変更しようとしましたNSBox
が、背景色を青に変更したり、透明度をバインドしたりできないため、役に立たないようです。NSCollectionVuewで選択を表示する方法についてのポインタをいただければ幸いです。
objective-c - NSCollection エラー: オブジェクト NSImage から NSData を作成できません
私は 3 つのオブジェクト、2 つの NSTextFields と 1 つの NSImageView を持つ NSCollectionView を持っています。ユーザーにフォルダーを選択させてから、そのフォルダーの内容を読み取ることで、データを取得しています。ファイル名、パス、タイプ (ファイル/フォルダー) のスニフを取得し、フォルダーの場合はアイコンを取得し (NSWorkspace を使用)、ファイルの場合はイメージを取得します。(これらはすべて画像ファイルである必要があります。チェックするフィルタが用意されています)。
とにかく、テキスト フィールドにデータが入力されているため、バインドは正しいように見えますが、NSImageView はそうではなく、NSImage をモデルに渡そうとすると、このエラー メッセージが表示されます。
これを実行するたびに、次のエラー メッセージが表示されます。
誰かがこれを修正するために正しい方向に私を向けることができます...ありがとう
cocoa - NSCollectionView のデリゲートを変更または拡張するにはどうすればよいですか?
NSCollectionView
に準拠するデリゲートがありNSCollectionViewDelegate
ます。
を拡張する新しいプロトコルがありますNSCollectionViewDelegate
。
ここで、CollectionViewItem のコントローラー クラスで、次の方法でデリゲートのメソッドを呼び出そうとします。
「インスタンス メソッド 'doSomeWork:' が見つかりません」という警告が表示され続けます。
やってみた
しかし、「型 'id' の式で 'id' を初期化する互換性のないポインター型です。
NSCollectionViewデリゲートのプロトコルを変更する正しい方法は何ですか?
objective-c - NSTextField の背後にある NSCollectionViewItem
NSTextField
のビューを持っていNSCollectionViewItem
ます。
をクリックするNSCollectionViewItem
と、項目が選択されます。
をクリックするNSTextField
とフォーカスが得られますがNSCollectionViewItem
、テキスト フィールドの後ろにある は選択されません。
この最後の動作を変更して、テキスト フィールドがフォーカスされ、ビュー アイテムも選択されるようにします。
これを行う最善の方法は何ですか?
cocoa - NSCollectionViewItem のビューを条件付きで設定する
NSCollectionView
配列コントローラーにバインドする があります。このアレイ コントローラには、のリストが含まれていますNSDictionary
。
アイテムには、ヘッダーとアイテムと呼ばれる辞書で定義された 2 つのタイプがあります。タイプがヘッダーの場合、headerView という別のビューを表示します。
このコードをNSCollectionViewItem
サブクラスに入れることで、これまでのところ機能しています。
ヘッダーのフレームは、アイテムのフレームよりもはるかに小さいです。高さは約半分です。
問題は、ヘッダーとアイテムの両方が同じフレーム サイズ (より大きなフレーム) になることです。コレクション アイテムのフレームがビュー フレームと同じであることを確認するにはどうすればよいですか?