問題タブ [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.

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

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 にバインドされています。これは、アイテムを追加するときは正しく機能しますが、削除するときは機能しません。

私が間違っていることについてのアイデアは大歓迎です。

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

objective-c - NSTableView 行の背景のカスタマイズ

NSTableView の各行の背景を変更するにはどうすればよいですか?

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

objective-c - テーブルビューで行が選択されたときにメソッドがトリガーされるようにする

テーブルビューの行が選択されている場合、どのようにメソッドをトリガーしますか?

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

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を変更するのですが、テキストの一部だけをリンクに変更したいです。

助けてくれてありがとう

0 投票する
7 に答える
4241 参照

objective-c - Objective-C を使用してテーブル ビューのすべての行を削除する

のすべての行を削除する方法を探していNSTableViewます。

テーブルビューにはデータソースがありますが、変数として設定されていないため、データソースが必要な場合は、「tableView のデータソース」のようなものが必要です。

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

cocoa - InterfaceBuilderの別のテーブルでの選択に応じてテーブルの表示を作成する

2つのNSTableViewでウィンドウを設定しました。Core Dataには、2つのエンティティが設定されており、そのうちの1つには、もう1つのより大きなグループ(例carsmanufacturers)のメンバーが含まれています。エンティティごとにエントリページを設定しましたが、そこでうまく再生されます(ドロップメニューで多対1から選択しようとしても問題はありません)。私が今やろうとしていることは、それをさらに一歩進めてmanufacturer、メインでaを選択すると、それに関連するNSTableViewリストが2番目に表示されるようにすることです。carsmanufacuturerNSTableView

manufacturerポップアップボタンに対して行ったのと同様のバインディングを使用して、エンティティから値をフィードしようとしましたが、選択したエントリに関係なく、carsすべてのエントリのリストが表示されているだけです。述語をフィルタリングするためのオプションが表示されませんが、バインディングのキーパスをに設定すると、関係の障害が表示されます。子テーブルに表示されるものをフィルタリングするにはどうすればよいですか?carmanufacturermanufacturer.cars

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

objective-c - プログラムによる NSTableView の行の選択

テーブルビューでプログラムで行を選択したいのですが、使用すると思いますselectRowIndexes:byExtendingSelection:(これはデリゲートメソッドですか?)。もう 1 つは、そのメソッドを使用して 2 番目の行 (プログラミング用語では行 1) を選択する方法です。

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

cocoa - バインディングに従ってテーブル ビューが更新されない - パート 2

タイトルはこの質問から借用しましたが、これは重複していません。その質問者にとって何が悪かったのかについては、私の回答を参照してください。私はその答えの作者であり、私の問題はそれではありません。

3 つの列を持つテーブル ビューがあり、その値バインディングはarrangedObjects配列コントローラーの 3 つのプロパティにバインドされています。配列コントローラーは、ドキュメント オブジェクトの にcontentArrayバインドされています。visitationResultsその配列内の項目は、モデル クラス (VisitationResult) のインスタンスです。selectionIndexesまた、配列コントローラとsortDescriptorsドキュメントのプロパティをバインドしました。

私はいくつかのアクセサーを介して自分のプロパティを変更しています:

このNSLogステートメントが実行され、配列コントローラーがモデル オブジェクトを収集して配置していることを確認します。これは、私が自分のプロパティを調べて、ドキュメントの KVO 通知を取得していることを意味します (これは、以前の質問者の問題である、プロパティをバイパスするという問題が、私が抱えている問題ではないことを証明しています)。

NSLogモデル オブジェクト クラスのアクセサ メソッドにステートメントを追加しました。それらの 1 つは、オブジェクトを並べ替えるために、配列コントローラーによって呼び出されています (そのプロパティが並べ替えキーです)。配列コントローラーが知らない他の 2 つは呼び出されません。

したがって、テーブル ビューは空白のままです。

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

objective-c - 選択したNSTableView行をCoreDataから削除しますか?

選択したNSTableView行とそれに対応するコアデータエントリを削除するにはどうすればよいですか?

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

cocoa - NSTableView のテンプレート画像で NSButtonCell を使用する

Interface Builder で、NSTableView インスタンスの列の 1 つの dataCell を NSButtonCell に設定しました。これは期待どおりに機能しますが、「テンプレート」画像を使用しようとすると、ボタンをクリックしたときに期待される視覚的な結果が得られません。

NSButtonCell の構成方法:

  • 画像: NSRevealFreestandingTemplate
  • スケーリング: なし
  • ベゼル: ベベル
  • タイプ: 瞬間押し込み
  • 縁取り: false

ボタンをクリックしたときの期待される結果:

  • 画像は「テンプレート」であるため、ボタンは「オン」状態をレンダリングする必要があります。
  • 背景、つまり画像を囲むスペースは変更しないでください。

ボタンをクリックしたときの実際の結果:

  • レンダリングされたイメージの「状態」に違いはありません。
  • 背景色が白に変わります。

問題の説明をできるだけ簡潔にするために最善を尽くしましたが、問題を視覚的に説明するために簡単なスクリーンキャストも作成しました。そして、デモアプリをアップロードしました。