多个Windows mac应用程序

时间:2013-02-19 16:10:43

标签: objective-c macos cocoa nswindowcontroller nsviewcontroller

我想创建一个多窗口mac应用程序,我被困在多个窗口部分!

我可以通过创建一个xib文件并使用这个方法来显示一些窗口:

-(void)popView:(NSString *)viewName {
    _windowController = [[AddProdutWindowController alloc] initWithWindowNibName:viewName];
    [_windowController showWindow:nil];
}

使用 @property (strong, nonatomic) AddProdutWindowController *windowController;

我的头文件中的

AddProductViewController继承自NSWindowViewController

我已将Xcode中的NSViewController子类链接到我的xib文件。

现在我想将一些数据发送到我的新视图并在一些NSTextField中显示它们并且我没有一个线索如何做到这一点!

我对WindowsControllerViewController非常困惑,我不知道如何/在何处使用它们。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

试试这个:

你的firstWindowController.h:

#import <Cocoa/Cocoa.h>
@class SecondWindowController;

@interface ResultWindowController : NSWindowController{
   SecondWindowController *swc;
}
@property  (assign) NSNumber *xyz;
...

你的firstWindowController.m:

#import "FirstWindowController.h"
#import "SecondWindowController.h"

@implementation FirstWindowController
@synthesize xyz;


- (IBAction)openSecondWindow:(id *)sender {
if (!swc)
{
    swc = [[SecondWindowController alloc] init];
}
[Swc setFwc:self];
[Swc showWindow:self];

你的secondWindowController.h:

#import <Cocoa/Cocoa.h>
@class FirstWindowController;
@interface SecondWindowController : NSWindowController {
   FirstWindowController *fwc;
}
@property (retain) IBOutlet FirstWindowController *fwc;

@end

你的secondWindowController.m:

#import "SecondWindowController.h"
#import "FirstWindowController.h"

@implementation SecondWindowController
@synthesize fwc;


- (id)init
{
if(![super initWithWindowNibName:@"SecondWindow"])
    return nil;
NSLog(@"_init: %@", NSStringFromClass([self class]));

return self;
}

- (void)windowDidLoad
{
[super windowDidLoad];

NSLog(@"swc didload self=%p", self); //thats your second window controller

NSLog(@"fwc value is %@", fwd.xyz);  // here you should be able to see the value from FirtsWindowController
}