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それを行う方法が1つもありません!

私はWindowsControllerand と非常に混同してViewControllerいます。それらをどのように/どこで使用するか正確にはわかりません。

助けてくれてありがとう。

4

1 に答える 1

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
}
于 2013-03-13T20:16:20.407 に答える