我有一个名为NSTableView *dataTableViewGlobal;
的全局变量,它存储在名为g
的c ++结构中。
我有一个名为NSViewController
的{{1}}子类,它有一个与之关联的nib,并在我的程序加载时创建。现在Window
看起来像这样:
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;
}
在awakeFromNib
期间更改作为我的笔尖一部分的NSTAbleView的颜色,但是当我尝试改变dataTableViewGlobal
中没有任何反应的颜色。
我打算做的是在click
同时创建的其他nib中使用全局变量。我更喜欢做的是Window
的对象包含我在代码中需要的Window
的当前实例,但我无法弄清楚如何做到这一点。
答案 0 :(得分:0)
问题可能是您的IBAction没有正确连接到按钮。所以只需确保它应该正确连接到按钮。
之后修改以下操作方法: -
-(IBAction) click :(id) sender
{
g->dataTableViewGlobal = self.dataTableView;
[ g->dataTableViewGlobal setBackgroundColor: NSColor.blueColor];
}