我是 MonoTouch 和 iPhone 开发的新手。我在 MonoDevelop 的资源文件夹中有我的图像 (PNG),但是如果我想在 Interface Builder 中为按钮设置图像属性,我该怎么做?它始终是一个空白下拉列表。我是否需要使用 XCode 访问 XIB 文件,然后以某种方式将我需要的按钮图像文件嵌入其中?
4 回答
这是 MonoDevelop 和 Interface Builder 的已知限制。要将图像添加到 Interface Builder 中的 XIB,它们必须是 XCode 项目的一部分,当然它们不是来自 MonoDevelop。
要实现您想要做的事情,您需要通过代码设置图像,并确保图像的构建操作设置为内容。为此,只需在 MonoDevelop 中右键单击您的图像,然后选择 Build Action > Content。
在带有按钮的视图上,在 Interface Builder 中为您的按钮创建一个插座,将其连接起来,然后从代码中设置您的图像,您只需要使用 UIImage 的 .FromFile("path/name") 方法。
UIImage buttonImage = UIImage.FromFile ("resources/image.png");
myButton.SetBackgroundImage (buttonImage,UIControlState.Normal);
这不是我的想法,但我认为应该这样做。
您可以在 Interface Builder 中手动设置图像,但直到运行时才会显示。图像名称可以包括路径,例如“images/settings.png”。
这里给出的所有解决方案都是完全错误和误导的。您需要做的就是将您的图像放在 Resources 文件夹(在项目根目录上),然后将您的图像添加到此文件夹中。将文件添加到此文件夹后,标记所有文件并确保它们的构建操作设置为 BundleResource。
我也需要这个来工作,这是我找到的解决方法。您需要创建一个虚拟 xcode 项目。将其放在与您的项目相同的文件夹中。当项目在 xcode 中打开时,将所有 xib 文件和图像文件添加到该 xcode 项目中。现在您将能够看到图像的预览。图像文件必须与项目文件位于同一文件夹中,并且在打开界面生成器时必须使用虚拟项目打开 xcode。不是很好 - 但现在解决了这个问题。 这是我创建的示例项目。
为了在 MonoDevelop 端解决这个问题 - 需要创建一些进程间通信代码,我认为一个很好的起点是在 google 中寻找“PBXProjectWatcherServerConnection-3.1.2”。