我想创建一个多窗口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
中显示它们并且我没有一个线索如何做到这一点!
我对WindowsController
和ViewController
非常困惑,我不知道如何/在何处使用它们。
感谢您的帮助。
答案 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
}