我正在尝试在 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 为空。但是 helloButton 工作正常!
我也尝试从 AwakeFromNib() 方法访问标签。结果是一样的。
谁能解释我应该如何清楚地完成它?我正在使用 MacOSX 10.8、XamarinStudio 4.0.3 和 XCode 4.6.1。谢谢!