2011-10-08 9 views
5

EDIT:まだXCode 4をインストールしていないので、MD 2.8がXcode 3.2.6と完全に互換性があるかどうかを知りたいです。特に、アウトレットとアクションをMT documentationに記載されている新しい手順で接続できますか?Monodevelop 2.8、Xcode 3.2.6、Interface Builder:アウトレットとアクション

私はMonoDevelop(MD)2.8をインストールしました。私は期待していなかったようだ。同じツリー内の

  • Controller.xib.cs
  • -

    • Controller.xib <:私は新しいのUIViewControllerを作成するときに

      MDに2.6は、そのコントローラは、次のように提示されます

    • Controller.xib.designer.cs

さらに、xibファイルController.ibを開くと、Interface Builder(IB)だけが開きます。アウトレットをxibに追加すると、コンセントはController.xib.designer.csに表示されます。私は新しいのUIViewControllerを作成するときに

MDに2.8は、そのコントローラは次のように提示されています

  • Controller.xib < - これ以上同じツリー内の
  • Controller.cs
    • コントローラデザイナー.cs

私は1つではなく2つのファイルを持っています。

さらに、xibファイルを開くと、Controller.xib、IB、およびXcodeが開きます。アウトレットをxibに追加すると、アウトレットはデザイナーに表示されません。

提案がありますか? Xcodeの4

ザ・Interface Builderのを支援するために、新しいXIBデザイナーモデルを導入

+2

を参照してください、私はまだよくなどMonoDevelopのに精通していないのですが、あなたはMonoDevelopのとMonoTouchでに関するブログのエントリは、現在のXcode 4を使用しています気付いたのですか? –

答えて

6

にMonoDevelop 2.8はXcodeの4に組み込まれ、もはやXIBファイル内のクラス、アウトレットとアクションを定義するサポートしていません。これはMonoDevelopがxibファイルから* .xib.designer.csファイルを生成したモデルを使用することはもはや不可能です。代わりに、Interface BuilderはObjective-Cソースコードからアウトレットとアクションを読み込みます。これに対するMonoDevelopの解決策は、C#クラスをObjective-Cスタブに同期させることです。

MonoDevelop 2.8からxibファイルを開くと、MonoDevelopは、Objective-Cに公開されているすべてのC#クラス、つまりNSObjectを継承し明示的に登録されているクラスをミラーリングするObjective-Cスタブを含む一時的なXcodeプロジェクトを作成します[Register("SomeName")]属性。次に、そのプロジェクトのコンテキストでxibファイルを開きます。これにより、Interface Builderは使用可能なすべてのタイプ、アウトレットおよびアクションを表示します。アウトレットとアクションがコントロールドラッグシステムを使用してXcode 4に追加された場合、それらはMonoDevelopの* .designer.csファイルに自動的にインポートされます。

これは、デザイナーファイルが実際には情報が格納されている場所ではなく、他のファイルから生成されなくなったことを意味します。これで、デザイナーファイルはxibではなくクラスに関連付けられました。

この新しいモデルは、Xcodeの4を支持の上にいくつか五分五分があります

  • それは、複数のXIBファイルのため、今は可能ですが、同じクラスを参照してください。
  • プロジェクトにはすべてのコンテンツリソースとその他のxibファイルが含まれているため、Interface Builderから簡単に参照できます
  • Interface Builderは、デザイナークラスのパーツだけでなく、C# 。

さらに、アウトレットを手動で書き込む方がずっと簡単です。単に例えば

[Outlet ("someView")] 
UIView SomeView {get; set; } 

残念ながら、新しいモデルはMonoDevelopのは、もはやInterface Builderの3.2.x.でアウトレットとアクションの作成と統合することを意味し、プロパティにOutlet属性を適用Xcode 4にアップグレードすることをお勧めします.MD 2.8以前のプロジェクトの読み込みと編集はうまくいくはずです。

http://docs.xamarin.com/ios/tutorials/transitioning_from_xcode_3_to_xcode_4

+0

お返事ありがとうございました。非常に役立ちます。 –

+0

これは、MD 2.8とXcode 4にアップグレードされたプロジェクトでMD 2.6とXcode 3で生成されたXIBが古いフォーマットのままで、何かを変更する必要があるまで機能するのでしょうか? – Krumelur

+0

変換は必要ありません。 –

関連する問題