2

我想制作一个多窗口 mac 应用程序,但我被多窗口部分卡住了!

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

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

@property (strong, nonatomic) AddProdutWindowController *windowController;

在我的头文件中并AddProductViewController继承自NSWindowViewController

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

现在我想将一些数据发送到我的新视图并显示它们,但NSTextField我不知道该怎么做!

我对WindowsControllerand很困惑ViewController,我不完全知道如何/在哪里使用它们。

谢谢你的帮忙。

4

1 回答 1

0

试试这个:

你的第一个WindowController.h:

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

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

你的第一个WindowController.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];

你的第二个WindowController.h:

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

@end

你的第二个WindowController.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
}
于 2013-03-13T20:16:20.407 回答