0
我有一个全局变量,称为NSTableView *dataTableViewGlobal;
,我已经存储在一个称为g
的C++结构。全球变量越来越dereferanced
我有一个NSViewController
的子类,名为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;
}
我目前有(除了使用全局的变量)的问题是,我能够改变的颜色NSTAbleView是我的笔尖的一部分awakeFromNib
使用dataTableViewGlobal
,但是当我尝试更改click
中的颜色时,没有任何反应。
我打算做的是在与Window
同时创建的其他笔尖中使用全局变量。我更愿意做的事情是拥有Window
的对象,其中包含我在代码中需要的Window
的当前实例,但我无法弄清楚如何执行此操作。
我IBAction为优良。如果我在'click'中使用'dataTableView',一切都很好。 – zzz711
你是否在你的动作方法中尝试这两行? g-> dataTableViewGlobal = self.dataTableView; [g-> dataTableViewGlobal setBackgroundColor:NSColor.redColor]; –
在我的action方法中添加'g-> dataTableViewGlobal = self.dataTableView;'可以改变颜色,但我想在当前类的外部使用'dataTableViewGlobal',所以我不能将它设置为'self.dataTableView'。 – zzz711