如何在MonoTouch中进行IBOutlets?

时间:2010-02-17 01:58:10

标签: c# iphone xamarin.ios iboutlet

我在Objective-C中完成了一个iPhone应用程序。当我想将Label链接到某些数据时,我会将其声明为:

@interface CityDetailViewController : UIViewController {
UILabel *cityName;
}

@property(nonatomic, retain) IBOutlet UILabel *cityName;

然后当在代码中创建CityDetailViewController对象时,我会设置城市名称,如[self.cityView.cityName setText:city.name];

对于我的生活,我不能在MonoTouch中弄清楚如何做到这一点。 我尝试通过Interface Builder手动创建Outlets,并尝试添加我在另一个项目的.designer.cs文件中找到的代码:

[MonoTouch.Foundation.Connect("headlineLabel")]
    private MonoTouch.UIKit.UILabel headlineLabel {
        get {
            return ((MonoTouch.UIKit.UILabel)(this.GetNativeField("headlineLabel")));
        }
        set {
            this.SetNativeField("headlineLabel", value);
        }
    }

我尝试过这两种方法的组合。 它们不起作用。 我能得到的最接近的是使用Interface Builder实际应用Outlet,但是当我的View被声明时我得到了这个错误:

  

此类不符合关键标题符号的密钥标题。

所以我完全不知所措。 有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:17)

很确定我已经弄清楚了所以我会在这里发布这个过程供其他人查看:

步骤1)从您的空视图开始,如下所示: step 1 http://www.jamespwright.com/images/public/screengrabs/7f2b8d35406e98ee5a00a81c6346e373.PNG

步骤2)在视图中添加UILabel控件: step 2 http://www.jamespwright.com/images/public/screengrabs/d757c579238ffc27acabb69c55460071.PNG

步骤3)选择“文件所有者”: step 3 http://www.jamespwright.com/images/public/screengrabs/42900214063dbbc44cd4dbc2813d64eb.PNG

步骤4)选择Identity Inspector(CMD + 4)并添加新的Class Outlet: step 4 http://www.jamespwright.com/images/public/screengrabs/109318382a72ac9edad2bcd24e6a4b9f.PNG

步骤5)选择Connections Inspector(CMD + 2),您应该在那里看到新的Class Outlet: step 5 http://www.jamespwright.com/images/public/screengrabs/2a2f9f4f0cc6680e7dd8c47cabba7e24.PNG

步骤6)将连接拖到视图上的标签上。

步骤7)在您的代码中,您可以通过键入myLabel.Text = "My Label!"

来填充它

希望将来可以帮助其他人。