MonoDevelop何时生成Connect语法

时间:2012-03-31 12:58:30

标签: ios interface-builder xamarin.ios monodevelop

我已经在这一天工作了一天以上,我在这里拉出我的头发。我正在尝试将RedLaser示例实现到我自己的应用程序中,但MonoDevelop / MonoTouch只是没有生成正确的代码。它必须是我(不)在Interface Builder中做的事情。好的,这就是。

在'RLSampleViewController.xib.designer.cs的示例中,生成以下内容:

namespace RedLaserSample {


    // Base type probably should be MonoTouch.UIKit.UIViewController or subclass
    [MonoTouch.Foundation.Register("RLSampleViewController")]
    public partial class RLSampleViewController {

        private OverlayController __mt_overlayController;
   ....

        [MonoTouch.Foundation.Connect("overlayController")]
        private OverlayController overlayController {
            get {
                this.__mt_overlayController = ((OverlayController)(this.GetNativeField("overlayController")));
                return this.__mt_overlayController;
            }
            set {
                this.__mt_overlayController = value;
                this.SetNativeField("overlayController", value);
            }
        }

在我的代码中生成以下内容:

namespace Winkel
{
    [Register ("ScanArtikelController")]
    partial class ScanArtikelController
    {
        [Outlet]
        Winkel.OverlayController overlayController { get; set; }

所以没有生成'Connect'语法,我也不知道如何在Interface Builder中正确定义它。

我注意到的其他事情。在我的代码中必须有一个不同的生成器激活。这是为RedLaser示例生成的内容:

// ------------------------------------------------------------------------------
//  <autogenerated>
//      This code was generated by a tool.
//      Mono Runtime Version: 4.0.30319.1
// 
//      Changes to this file may cause incorrect behavior and will be lost if 
//      the code is regenerated.
//  </autogenerated>
// ------------------------------------------------------------------------------

此评论是为我的代码生成的:

// WARNING
//
// This file has been generated automatically by MonoDevelop to store outlets and
// actions made in the Xcode designer. If it is removed, they will be lost.
// Manual changes to this file may not be handled correctly.
//

1 个答案:

答案 0 :(得分:1)

在我看来,您拥有的示例代码已过时。这就是以前版本的MonoDevelop(&lt; = 2.6)在Interface Builder是一个独立的应用程序时会生成的。

现在Interface Builder已集成到Xcode中,您的代码就是MonoDevelop(&gt; = 2.8)生成的代码。

关于功能,两个代码段都是相同的,这意味着它们都会创建一个属性,该属性将在界面设计器中以OverlayController类型反映您的连接插座。