全局变量被取消了

时间:2014-07-08 16:30:45

标签: macos cocoa nib objective-c++

我有一个名为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的当前实例,但我无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

问题可能是您的IBAction没有正确连接到按钮。所以只需确保它应该正确连接到按钮。

之后修改以下操作方法: -

-(IBAction) click :(id) sender 
{
    g->dataTableViewGlobal =  self.dataTableView;
    [ g->dataTableViewGlobal setBackgroundColor: NSColor.blueColor];
}
相关问题