我正在尝试创建一个简单的Mac OS X应用程序,它显示文本输出,这是为我的程序记录的。这是我做的:
1)创建了Mac OS X UI项目
2)在MainMenu.xib的Application窗口中间添加了一个“Text Field”组件
3)添加了一个新类“MainWindow.m”,其中包含以下属性:
@property (assign) IBOutlet NSTextField *mainWindowText;
4)将文本字段组件中的“引用插座”连接到属性。我现在看到上面一行代码
左边的灰点5)在我的应用程序中,我创建了一个新线程,它创建了一个MainWindow实例。然后我等待5秒并尝试访问上面的mainWindowText变量,但它始终为null。我期待一个非null变量,所以我可以调用setStringValue:并随时修改文本。
我尝试用doText做类似的事情:当我按Enter键时我能看到回调,然后在那里写文字。但是我需要一种方法来在任意时间修改文本,我认为上面的属性是正确的方法。
我也尝试添加@synthesize语句,但这没有效果。
有什么建议吗?
更新:阅读一些帖子后,我认为问题是我正在使用错误的mainWindow对象。我尝试在NIB中创建一个NSObject并使其自定义类类型为mainWindow,并在我的其他类中创建了一个IBOutlet(类型为MainWindow *),但它不允许我连接这两个东西,所以我不知道如何访问我添加到NIB的这个NSObject对象。
答案 0 :(得分:0)
NIB文件有一个所有者 - 这是您要用来执行此操作的类。事情应该是这样的:
awakeFromNib
)告诉所有者所有配置已完成完成后,您就可以访问这些网点了。
从最初的项目开始,你应该有一个NIB文件和一个属于它的所有者的类,所以你应该使用它来执行你的控制任务(当然,直到你有更多的NIB档案经验)。