2 Window 1 WindowController

时间:2014-01-10 15:23:52

标签: objective-c xcode macos cocoa xib

我有一个小问题。我还在学习Cocoa,我成功完成了几个项目,但我决定做一些不同的事情 前几天我在我的Windows机器上使用C#(在表单之间传递数据)做了一些事情,它运行得很完美。 我们的想法是让一个表单只能显示信息而不能编辑,另外一个表单可以更改应该显示的信息(记录集示例) 现在我想用Cocoa做类似的事情,所以我决定使用2个XIB(Windows)和1个控制器。我故意避免使用CoreData和ArrayController。

我设法添加了插座和控制器,将所有这些绑定在一起。 因为我没有足够的空间来粘贴所有代码,所以我将其转换为GitHub 一切正常,但我无法将一个窗口中保存的值更新到另一个窗口。 我只是想知道我哪里出错了。 如果可能的话,我会感激一些帮助。 先感谢您。

这里是有问题的代码片段

     - (IBAction)changeValues:(id)sender {
windowController = [[NSWindowController alloc]initWithWindowNibName:@"Changer" owner:self];
[_displayWindow close];
[windowController showWindow:self];
}

然后我有另一个功能导致我保存麻烦

     - (IBAction)storeChanges:(id)sender {

NSString *pName = [_name stringValue];
NSString *pSurname = [_surname stringValue];
NSDate *pDate = [_dateOfBirth dateValue];
NSImage *pImage = [_imageView image];
NSString *pAdditionalData = [_additionalData string];
[_changerWindow close];
[windowController setWindow:_displayWindow];
[_displayWindow update];
[windowController showWindow:self];
}

1 个答案:

答案 0 :(得分:0)

我设法解决了问题。我实际上没有从第二个窗口中创建一个与第一个窗口交互的适当属性。