【发布时间】:2014-07-08 16:30:45
【问题描述】:
我有一个名为 NSTableView *dataTableViewGlobal; 的全局变量,我将它存储在一个名为 g 的 c++ 结构中。
我有一个名为Window 的NSViewController 子类,它有一个与之关联的笔尖,并在我的程序加载时创建。现在Window.h 看起来像这样:
@interface Window : NSViewController{
IBOutlet NSButton* button;
}
@property (retain, readwrite) IBOutlet NSTableView *dataTableView;
-(IBAction) click :(id) sender;
Window.m 看起来像这样:
@synthesize dataTableView;
-(void) awakeFromNib {
g->dataTableViewGlobal = self.dataTableView;
[g->dataTableViewGlobal setBackgroundColor: NSColor.redColor];
}
-(IBAction) click :(id) sender {
[ g->dataTableViewGlobal setBackgroundColor: NSColor.blueColor];
return;
}
我目前遇到的问题(除了使用全局变量之外)是我能够使用dataTableViewGlobal 在awakeFromNib 期间更改作为我笔尖一部分的 NSTAbleView 的颜色,但是当我尝试更改click 中的颜色没有任何反应。
我打算在与Window 同时创建的其他 nib 中使用全局变量。我更愿意做的是拥有 Window 的对象,其中包含 Window 的当前实例,我在我的代码中需要它,但我不知道该怎么做。
【问题讨论】:
标签: macos cocoa nib objective-c++