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