2012-06-16 33 views
0

我有:試圖從一個類中獲取NSPanel以在不同的類中查看?

MyWindowController.h 
MyWindowController.m 
HistoryController.h 
HistoryController.m 

在MyWindowController.h,有:

IBOutlet NSPanel* viewInvoice; 

,稍後:

- (IBAction)viewInvoice:(NSNumber *)invoiceNumber; 

我想利用這個面板的整個我的程序。 在我HistoryController.m,有:

- (IBAction)viewSelectedInvoice:(id)sender{ 
    id viewInvoiceObject = [[MyWindowController alloc] init]; 
    [viewInvoiceObject viewInvoice:[NSNumber numberWithInt:1]]; 
    [viewInvoiceObject release]; 
} 

現在我可以成功訪問方法(一些的NSLog調用驗證這一點),但我並不能夠真正使NSPanel出現。下面是一些代碼從那裏:

- (IBAction)viewInvoice:(NSNumber *)invoiceNumber { 
    [viewSelectedInvoicePanel makeKeyAndOrderFront:viewSelectedInvoicePanel]; 
} 

我能夠使面板彈出,如果我在歷史視圖鏈接的按鈕FirstResponder行動「viewInvoice」,但是好像我不會能夠通過參數發送(即發票號碼)。

回答

0

編輯您的HistoryController有您的自定義NSPanel作爲一個屬性:

@property (nonatomic, retain) IBOutlet NSPanel *viewInvoice; 

然後,在你的HistoryController創建IBAction調用您的自定義NSPanel功能:

-(IBAction)viewInvoice:(id)sender { 
    [self.viewInvoice viewInvoice:self.some_property_with_invoice_number]; 
} 

並鏈接按鈕viewInvoice方法(在HistoryController類中)。此外,您應該將屬性對象類型從NSPanel更改爲whate你是否命名你的班級?

相關問題