問題タブ [nstableview]
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.
core-data - NSArraycontroller から削除されたオブジェクトは、クリックされるまでテーブルに残ります
アプリケーションの AppDelegate の managedObjectContext にバインドされた NSArraycontroller があります。ダウンロード キューとして機能します。アイテムはプログラムで NSArraycontroller に追加されます
これには 2 つのフィールドを示すテーブルがあり、それぞれの列の値は、前述の NSArraycontroller に個別にバインドされています。新しいダウンロードが開始されると、プログラムによって NSArraycontroller から削除されます。
ダウンロードを開始する前にキューからダウンロードを削除するボタンを追加しました。ボタンは NSArraycontroller の remove: アクションにバインドされており、テーブルで選択したアイテムを削除する必要があります。
私の問題は、削除ボタンをクリックしても、選択したアイテムがテーブルから削除されず、テーブル内の別のエントリをクリックするまでそこに残ることです。項目があった行を選択すると、マウス ボタンが押されている間、項目がまだそこにあるかのように選択されますが、値はありません。
削除ボタンをクリックすると、コンソールに次のように表示されます。
-[NSCFDictionary _setUnprocessedDeletion__:]: unrecognized selector sent to instance 0x2000f2220
プログラムを使用してテーブルからアイテムを削除すると、正常に
[[downloadsArray content] removeObjectAtIndex:0];
[downloadsTable reloadData];
[downloadsTable deselectAll:nil];
動作するように見えますが、マウスボタンが押されたときにのみ選択され、選択されたままになる非表示のアイテムが残っています。
削除ボタンの enabled 属性を NSArraycontroller の canRemove にバインドしましたが、これは正しく機能します。
キュー内のアイテム数を示すラベルがあります。これは、NSArraycontroller、arrangedObjects、@count にバインドされています。これは、アイテムを追加するときは正しく機能しますが、削除するときは機能しません。
私が間違っていることについてのアイデアは大歓迎です。
objective-c - NSTableView 行の背景のカスタマイズ
NSTableView の各行の背景を変更するにはどうすればよいですか?
objective-c - テーブルビューで行が選択されたときにメソッドがトリガーされるようにする
テーブルビューの行が選択されている場合、どのようにメソッドをトリガーしますか?
objective-c - 多くのクリック可能な URL を含むテキストを表示する
次のような NSTableView でカスタム NSCell を使用しています。
http://www.martinkahr.com/2007/05/04/nscell-image-and-text-sample/
クリック可能な URL が多いテキストを表示したい。
どんな体でも私をタイトな方向に投げることができますか?
私は次のようなことをしようとしていました:
http://snippets.aktagon.com/snippets/358-How-to-make-a-clickable-link-inside-a-NSTextField-and-Cocoa
リンクのNSCellを変更するのですが、テキストの一部だけをリンクに変更したいです。
助けてくれてありがとう
objective-c - Objective-C を使用してテーブル ビューのすべての行を削除する
のすべての行を削除する方法を探していNSTableView
ます。
テーブルビューにはデータソースがありますが、変数として設定されていないため、データソースが必要な場合は、「tableView のデータソース」のようなものが必要です。
cocoa - InterfaceBuilderの別のテーブルでの選択に応じてテーブルの表示を作成する
2つのNSTableViewでウィンドウを設定しました。Core Dataには、2つのエンティティが設定されており、そのうちの1つには、もう1つのより大きなグループ(例cars
とmanufacturers
)のメンバーが含まれています。エンティティごとにエントリページを設定しましたが、そこでうまく再生されます(ドロップメニューで多対1から選択しようとしても問題はありません)。私が今やろうとしていることは、それをさらに一歩進めてmanufacturer
、メインでaを選択すると、それに関連するNSTableView
リストが2番目に表示されるようにすることです。cars
manufacuturer
NSTableView
manufacturer
ポップアップボタンに対して行ったのと同様のバインディングを使用して、エンティティから値をフィードしようとしましたが、選択したエントリに関係なく、cars
すべてのエントリのリストが表示されているだけです。述語をフィルタリングするためのオプションが表示されませんが、バインディングのキーパスをに設定すると、関係の障害が表示されます。子テーブルに表示されるものをフィルタリングするにはどうすればよいですか?car
manufacturer
manufacturer.cars
objective-c - プログラムによる NSTableView の行の選択
テーブルビューでプログラムで行を選択したいのですが、使用すると思いますselectRowIndexes:byExtendingSelection:
(これはデリゲートメソッドですか?)。もう 1 つは、そのメソッドを使用して 2 番目の行 (プログラミング用語では行 1) を選択する方法です。
cocoa - バインディングに従ってテーブル ビューが更新されない - パート 2
タイトルはこの質問から借用しましたが、これは重複していません。その質問者にとって何が悪かったのかについては、私の回答を参照してください。私はその答えの作者であり、私の問題はそれではありません。
3 つの列を持つテーブル ビューがあり、その値バインディングはarrangedObjects
配列コントローラーの 3 つのプロパティにバインドされています。配列コントローラーは、ドキュメント オブジェクトの にcontentArray
バインドされています。visitationResults
その配列内の項目は、モデル クラス (VisitationResult) のインスタンスです。selectionIndexes
また、配列コントローラとsortDescriptors
ドキュメントのプロパティをバインドしました。
私はいくつかのアクセサーを介して自分のプロパティを変更しています:
このNSLog
ステートメントが実行され、配列コントローラーがモデル オブジェクトを収集して配置していることを確認します。これは、私が自分のプロパティを調べて、ドキュメントの KVO 通知を取得していることを意味します (これは、以前の質問者の問題である、プロパティをバイパスするという問題が、私が抱えている問題ではないことを証明しています)。
NSLog
モデル オブジェクト クラスのアクセサ メソッドにステートメントを追加しました。それらの 1 つは、オブジェクトを並べ替えるために、配列コントローラーによって呼び出されています (そのプロパティが並べ替えキーです)。配列コントローラーが知らない他の 2 つは呼び出されません。
したがって、テーブル ビューは空白のままです。
objective-c - 選択したNSTableView行をCoreDataから削除しますか?
選択したNSTableView行とそれに対応するコアデータエントリを削除するにはどうすればよいですか?
cocoa - NSTableView のテンプレート画像で NSButtonCell を使用する
Interface Builder で、NSTableView インスタンスの列の 1 つの dataCell を NSButtonCell に設定しました。これは期待どおりに機能しますが、「テンプレート」画像を使用しようとすると、ボタンをクリックしたときに期待される視覚的な結果が得られません。
NSButtonCell の構成方法:
- 画像: NSRevealFreestandingTemplate
- スケーリング: なし
- ベゼル: ベベル
- タイプ: 瞬間押し込み
- 縁取り: false
ボタンをクリックしたときの期待される結果:
- 画像は「テンプレート」であるため、ボタンは「オン」状態をレンダリングする必要があります。
- 背景、つまり画像を囲むスペースは変更しないでください。
ボタンをクリックしたときの実際の結果:
- レンダリングされたイメージの「状態」に違いはありません。
- 背景色が白に変わります。
問題の説明をできるだけ簡潔にするために最善を尽くしましたが、問題を視覚的に説明するために簡単なスクリーンキャストも作成しました。そして、デモアプリをアップロードしました。