0

この素晴らしいスクリーンショットを見て、私が何を質問できるか想像できると思います...

スクリーンショット http://a4.s3.p.quickshareit.com/files/screenshot_75d0fc54a05ec7eae3f410.png プレイヤー:

右側: 設定パネルNSTableView
、左側: メインウィンドウNSPopUpButton( NSMenu;] の下)

ポップアップの選択されたオブジェクトは、テーブルビューでこれらのいずれかにバインドされます。テーブルビューから(選択したポップアップで)オブジェクトを削除すると、この醜いもの(そこに表示されるもの)が表示されます。私は CoreData を使用しており、NSArrayController は 1 つのエンティティにバインドされています。

私は2つの興味深いものを見つけました:

NSManagedObjectContextObjectsDidChangeNotification  
[NSPopUpButton synchronizeTitleAndSelectedItem];

最初に、誰かがいつテーブルビューからアイテムを削除したかを知っています。残念ながら、私の問題では2番目は機能しません...

では、この醜いものを吹き飛ばす方法はありますか? =D

ところで、この素敵なアプリとネイティブの URL 短縮サービスに興味がある場合は、こちらをご覧ください

4

2 に答える 2

1

すべてがどのように正しく構築されているかについての説明を理解できれば、NSPopupButton の selectedObject は NSTableView の値にバインドされます。私の推測では、dataSource メソッドを使用してテーブルにデータを提供し、バインディングを使用してポップアップ内のデータをテーブルと一致させていると思います。

実際のデータセットには NSArrayController を使用し、そのコンテンツ配列をコントローラーの NSMutablearray にバインドし、tableView と NSPopupButton の両方を arrayController にバインドする必要があります。一方のコントロールを他方のコントロールにバインドするのではありません。あなたが説明する問題は、この状況で -description のデフォルトの実装が見られることを除いて、NSManagedObject とはあまり関係がないようですが、型にはまらない方法でバインディングを使用することとはさらに関係があります。

于 2009-02-12T22:56:10.667 に答える
0

私はそれを持ってます!
NSPopUpButton の選択したオブジェクトのバインドを解除し、再度バインドしました。only選択したオブジェクトがリストから削除されたときに、このアクションを実行します。;)

于 2009-02-15T10:11:07.007 に答える