如何在monomac中访问表单上的控件元素?

时间:2013-03-27 15:08:10

标签: macos mono xamarin-studio

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

0 个答案:

没有答案