0

我正在尝试在 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。谢谢!

4

0 回答 0