2

我是一名使用 MonoTouch 涉足 iPhone 开发的 C# 程序员。

我在我的项目中添加了一个新的 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's Owner 的类型是 UIApplication 而不是 NSObject。这有什么重要性?有一个 AppDelegate 类型的 App Delegate 对象。我无法将 AppDelegate 添加到我自己的视图中,或者至少我在库中找不到它。我需要添加一个吗?我可以看到 MainWindow.xib 上的现有控件具有到 App Delegate 的引用插座。我添加了一个新按钮,我想把它连接起来。当我单击一个新的引用插座并将其拖动到应用程序委托时,会出现一个列出现有控件的上下文菜单。如何向此列表添加新元素,或者此列表来自何处?

我被 Visual Studio 世界宠坏了,我只是在表单上转储一个按钮并开始为 click 事件编写代码。有人可以提供一些关于在 MonoTouch 上工作所需的步骤的指示吗?

谢谢,

帕特里克

4

3 回答 3

1

正如 Dave 所说,您需要在控制器类中添加一个插座,并将您的按钮连接到该插座,然后才会出现任何自动生成的代码。这最初也让我感到震惊。

您在 Interface Builder 库窗口中选择您的控制器类,在库的底部选择“出口”,然后在那里添加一个出口。然后您需要选择您的按钮,选择检查器窗口的连接选项卡,然后从“新引用插座”圆圈拖动到您的控制器类。Interface Builder 然后会提示您选择要连接的插座。然后,当您保存时,您应该会在 .xib.designer.cs 文件中显示自动生成的代码,然后您应该能够通过 .xib.cs 文件中的出口变量引用您的按钮。

于 2010-07-23T18:24:44.870 回答
1

单独添加一个按钮是不够的。在 Interface Builder 之外无法访问该按钮。您需要添加一个插座,并将按钮与 Interface Builder 中的插座连接。

请记住:Outlets 是 Controller 类中获取控件引用的成员,没有它们就不能访问控件。

于 2010-05-26T07:24:27.583 回答
0

听起来我创建的项目已经过时了——我记得在设计器文件中如何创建生成的按钮有很多变化。我会尽快为您更新项目。

正如 Dave 所说,要让代码自动生成,您需要使用 Interface Builder 添加一个插座。这个视频应该有一个例子 - http://bit.ly/aWoItN但目前服务器似乎已关闭。

希望这可以帮助,

克里斯NTR

于 2010-06-04T14:15:33.253 回答