1

テーブルを含むカスタム シートを作成しました。テーブルにはユーザー名のリストがあります。

ユーザー名を含むカスタム シート

選択した行の値を取得してアプリケーションで使用したい。次の方法で行を取得できます。

-(void)tableViewSelectionDidChange:(NSNotification *)notification{
    NSInteger selectedRow = [[notification object] selectedRow];
    if(selectedRow != -1){
        self.selectedRowDict = [self.usersArray objectAtIndex:selectedRow];
    }
}

しかし、今私の問題は、このシートを開始したメインウィンドウにデータを戻したいということです。

以下は同じコードです。

if(!self.accountSheet){
    [NSBundle loadNibNamed:@"AccountSheet" owner:self];
}
[NSApp beginSheet:self.accountSheet
   modalForWindow:[mainWindowView window]
    modalDelegate:self
   didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:)
      contextInfo:NULL];

これを行う方法?

注意: シートは、メイン ウィンドウのペン先とは別のペン先で作成されます。各 nib には、アクションやその他のウィンドウ関連の作業を実装するための独自の NSObject 拡張クラスがあります。シート nib は、ファイル所有者としてメイン ウィンドウに関連付けられており、メイン nib NSObject クラスに IBOutlet があります。

さらに情報が必要な場合は、お知らせください。

4

1 に答える 1

2

あなたがやっているように、シートに情報をインスタンス変数に保存させてdidEndSelectorから、シートから値を取得するだけです: self.accountSheet.selectedRowDict、または what-have-you 。

于 2012-11-13T05:43:08.807 に答える