在目标c中访问其他类的对象?

时间:2013-10-09 06:04:53

标签: objective-c cocoa

我正在尝试将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"];

谢谢..

2 个答案:

答案 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的方法。