我正在尝试在monomac上编译一个hello world应用程序。 我用XCode修改了.xib文件。我已经将标签和按钮控件添加到表单中。之后,我将下一个代码添加到MainWindowController.h:
@interface MainWindowController : NSWindowController {
NSButton *_helloButton;
NSTextField *_helloLabel;
}
@property (nonatomic, retain) IBOutlet NSButton *helloButton;
@property (nonatomic, retain) IBOutlet NSTextField *helloLabel;
- (IBAction)helloButtonClick:(id)sender;
此代码由XCode,MainWindowController.m自动生成:
@synthesize helloButton = _helloButton;
@synthesize helloLabel = _helloLabel;
- (IBAction)helloButtonClick:(id)sender {
}
返回Xamarin Studio后,我已将此代码添加到MainWindowController.cs中:
partial void helloButtonClick (NSObject sender)
{
helloLabel.StringValue = "Hello";
}
在MainWindow.designer.cs中,自动添加了下一个代码:
[Outlet]
MonoMac.AppKit.NSButton helloButton { get; set; }
[Outlet]
MonoMac.AppKit.NSTextField helloLabel { get; set; }
[Action ("helloButtonClick:")]
partial void helloButtonClick (MonoMac.Foundation.NSObject sender);
但是我通过这种方式访问标签时遇到了问题。当我点击helloButton时,我得到一个NullExeption。似乎没有创建helloLabel,helloLabel为null。但是helloButton工作正常!
此外,我还尝试从AwakeFromNib()方法访问标签。结果是一样的。
有人能解释我应该如何清楚地完成它吗?我使用的是MacOSX 10.8,XamarinStudio 4.0.3和XCode 4.6.1。谢谢!