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 扩展类来实现动作和其他与窗口相关的工作。工作表笔尖作为文件所有者与主窗口相关,并且在主笔尖 NSObject 类中有一个 IBOutlet

如果需要更多信息,请告诉我。

4

1 回答 1

2

让您的工作表将信息存储在一个实例变量中,就像您正在做的那样,然后在您的 中didEndSelector,只需从工作表中获取值:self.accountSheet.selectedRowDict或 what-have-you。

于 2012-11-13T05:43:08.807 回答