0

私はObjective-cの初心者であり、シンプルなGUIを実現したいと考えています。MyMainWindowController対応するxibを備えたAには、テーブルとシンプルなAddボタンが含まれています。

@interface MyMainWindowController : NSWindowController
{
}
@end

コントローラの実装コードはほとんど空です(事前定義されたinitWithWindowとwindowDidLoad)。は次のAddressTvcように定義されます。

@interface AddressTvc : NSObject <NSTableViewDataSource>
{
  @private
    IBOutlet NSTableView *myTableView;
    NSMutableArray *list;
}
- (IBAction)add:(id)sender;
@end

これは正常に機能します。ボタンをクリックするAddと、新しい行がテーブルに挿入されます。

ここに画像の説明を入力してください

AddressTvcが表示されている場合、は自動的に(IBによって?)作成されるようMyMainWindowControllerです。のコードに参照が必要なMyMainWindowControllerのでAddressTvc、バックグラウンドスレッドによって取得されたデータでテーブルを埋めることができます。これは、メソッドを呼び出すことによって実行する必要があります- (IBAction)add:(id)sender;

AddressTvc内部を作成しようとしましたMyMainWindowControllerが、オブジェクトが2回初期化されました。IBのどこかに配線する必要があると確信していますが、これを行う場所がわかりません...

4

1 に答える 1

1

テーブルビューコントローラークラスを指すことができるMyMainWindowControllerクラスにアウトレットを作成します。

例えば

@interface MyMainWindowController : NSWindowController
{
    IBOutlet AddressTvc *myTVC 
}
@end

次に、ファイル所有者からインターフェースビルダーのテーブルビューコントローラーのインスタンスにコントロール+ドラッグするだけで、ウィンドウコントローラーコードでアクセスできるようになります。

于 2012-06-03T07:36:08.630 に答える