我正在尝试将NSString
设置为ClassB中调用该方法的ClassB的NSTextField
。但NSTextField
未初始化NSString
的值。
classB.h
NSString *folderPath;
ClassB.m
- (id)initWithWindow:(NSWindow *)window
{
self = [super initWithWindow:window];
if (self) {
[alertWindow setIsVisible:NO];
[pdfStatusText setStringValue:@"Null"];
}
return self;
}
-(id)initWithAlertWindowControllers:(NSString*)fileName andTitle:(NSString *)title
{
//some part of code here
//i am trying to set String value to the NSTextField pdfStatusText
folderPath=fileName;
[pdfStatusText setStringValue:folderPath];
}
- (void)windowDidLoad
{
[super windowDidLoad];
[self.window makeKeyAndOrderFront:self];
}
classA.m
_alertWindow = [[AlertWindowController alloc] initWithAlertWindowControllers:Path andTitle:@"Project"];
谢谢..
答案 0 :(得分:1)
您的代码应该可以运行,尝试将NSlog写入您的方法,并确保您的方法是否正常工作,然后可能是因为textField -(id)initWithAlertWindowControllers:(NSString*)fileName andTitle:(NSString *)title
{
NSLog(@"Is it working?");
//some part of code here
//i am trying to set String value to the NSTextField pdfStatusText
folderPath=fileName;
pdfStatusText.Text=title;
}
也许你应该尝试类似pdfStatusText.delegate=self
的东西;在你的视图中加载方法。
答案 1 :(得分:0)
您是否在A类中设置了B类的NSTextField的值,A类将创建NSTextField的新实例,并且您的文本字段将不会被初始化。 您所要做的就是在A类中创建一个B类的IBOutlet。在xib中拖动两个NSObject并将它们的类设置为A类和B类。现在将B类的newReferencingOutlet绑定到您在A类中创建的IBOutlet对象ctlr +从classB拖到xib中的classA。
现在使用此IBOutlet对象而不是B类的新实例在类A中调用类B的方法。