我刚开始使用Xamarin进行iOS开发,遇到了一个难题。我正在尝试创建自定义的表格单元格来显示一些数据。因此,我从各种在线资源中获取提示(例如,请参见这里),创建了一个.xib文件,删除了Xamarin自动创建的视图,并将其替换为
问题出现在当我拿取任何我自定义单元格中的控件并尝试创建连接时。在XCode中创建连接,看起来一切都很好。回到Xamarin,我可以看到它已经自动为它创建了属性。
但是,当我尝试运行代码时,会出现一个运行时错误,说
UITableViewCell
。我在我的单元格中添加了一些标签,并使用RegisterNibForCellReuse
注册了我的单元格,并设置了继承自UITableViewSource
的类,以在适当时返回我的自定义单元格。目前为止还不错。问题出现在当我拿取任何我自定义单元格中的控件并尝试创建连接时。在XCode中创建连接,看起来一切都很好。回到Xamarin,我可以看到它已经自动为它创建了属性。
[Register ("MyCustomCell")]
partial class MyCustomCell
{
[Outlet]
MonoTouch.UIKit.UILabel MyLabel { get; set; }
void ReleaseDesignerOutlets ()
{
if (MyLabel != null) {
MyLabel.Dispose ();
MyLabel = null;
}
}
}
但是,当我尝试运行代码时,会出现一个运行时错误,说
This class in not key value coding-compliant for key the key MyOutlet
。你有任何想法可能正在发生什么? Xamarin 文档提供了可能的原因这里,但我不确定它是否相关。在 Xamarin 创建的任何一个设计文件中都没有看到像那样的东西,而且它们一直很好。我尝试将上面的属性定义替换为使用 Connect
属性而不是 Outlet
并使用 GetNativeField
和 SetNativeField
,但我看到相同的结果。