我是一名C#程序员,正在使用MonoTouch进行一些iPhone开发。
我在项目中添加了一个新的View Interface Definition,然后双击以在Interface Builder中打开它。我添加了一个UIButton。我保存文件,并检查xib.designer.cs文件,我看不到对新按钮的引用。
我从http://monotouchexamples.com/下载了代码,在那里我可以看到自动生成代码的示例:
[MonoTouch.Foundation.Connect("infoButton")]
private MonoTouch.UIKit.UIButton infoButton {
get {
return ((MonoTouch.UIKit.UIButton)(this.GetNativeField("infoButton")));
}
set {
this.SetNativeField("infoButton", value);
}
}
我在界面构建器中打开了MainWindow.xib。我注意到一些差异。 File的Owner属于UIApplication而不是NSObject。这有什么重要意义? AppDelegate类型的App Delegate对象。我无法将AppDelegate添加到我自己的视图中,或者至少我在库中找不到它。我需要添加一个吗?我可以看到MainWindow.xib上的现有控件具有到App Delegate的引用插座。我添加了一个新按钮,我想把它连接起来。当我单击并将New Referencing Outlet拖动到App Delegate时,会出现一个列出现有控件的上下文菜单。如何在此列表中添加新元素,或者此列表来自何处?
我被Visual Studio世界宠坏了,我只是在表单上转储一个按钮并开始为click事件编写代码。有人可以提供一些关于在MonoTouch上运行所需步骤的指示吗?
谢谢,
帕特里克
答案 0 :(得分:1)
单独添加按钮是不够的。在Interface Builder外部无法访问该按钮。您需要添加一个Outlet,并将该按钮与Interface Builder中的插座连接。
请记住:Outlets是Controller类中的成员,它们获取对控件的引用,您不能只使用它们来访问控件。
答案 1 :(得分:1)
答案 2 :(得分:0)
听起来我创建的项目已经过时了 - 我记得在设计器文件中创建生成的按钮的方式有很多变化。我会尽快更新项目。
正如Dave所说,要使代码自动生成,您需要使用Interface Builder添加插座。这个视频应该有一个例子 - http://bit.ly/aWoItN但是服务器此刻似乎已经停止了。
希望这有帮助,
ChrisNTR