我有:
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 :(得分:0)
修改您的HistoryController,将您的自定义NSPanel
作为属性:
@property (nonatomic, retain) IBOutlet NSPanel *viewInvoice;
然后,在IBAction
上创建一个HistoryController
来调用您的自定义NSPanel
功能:
-(IBAction)viewInvoice:(id)sender {
[self.viewInvoice viewInvoice:self.some_property_with_invoice_number];
}
并将您的按钮链接到viewInvoice
方法(位于HistoryController
类内。此外,您应该将属性对象类型从NSPanel
更改为您命名为类的任何内容。