5

編集:XCode 4をまだインストールしていないので、MD2.8がXCode3.2.6と完全に互換性があるかどうかを知りたいです。特に、アウトレットとアクションをMTドキュメントに記載されている新しい手順に接続できますか?

MonoDevelop(MD)2.8をインストールしました。期待していたように動作しないようです。

MD 2.6では、新しいUIViewControllerを作成すると、そのコントローラーは次のように表示されます。

  • Controller.xib<-同じツリー内
    • Controller.xib.cs
    • Controller.xib.designer.cs

さらに、xibファイルController.xibを開くと、Interface Builder(IB)のみが開かれます。xibにアウトレットを追加すると、アウトレットはController.xib.designer.csに表示されます。

MD 2.8では、新しいUIViewControllerを作成すると、そのコントローラーは次のように表示されます。

  • Controller.xib<-同じツリー内にはもうありません
  • Controller.cs
    • Controller.designer.cs

したがって、1つではなく2つのファイルがあります。

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

助言がありますか?

4

1 に答える 1

6

MonoDevelop 2.8 では、Xcode 4 をサポートするために、新しい xib デザイナー モデルが導入されました。

Xcode 4 に統合された Interface Builder は、xib ファイルでのクラス、アウトレット、およびアクションの定義をサポートしなくなりました。これは、MonoDevelop が xib ファイルから *.xib.designer.cs ファイルを生成したモデルを使用できなくなったことを意味します。代わりに、Interface Builder は、Objective-C ソース コードからアウトレットとアクションを読み取ります。これに対する MonoDevelop のソリューションは、C# クラスを Objective-C スタブに同期することです。

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

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

この新しいモデルには、Xcode 4 のサポートに加えて、いくつかの利点があります。

  • 複数の xib ファイルが同じクラスを参照できるようになりました。
  • プロジェクトにはすべてのコンテンツ リソースとその他の xib ファイルが含まれているため、Interface Builder から簡単に参照できます。
  • Interface Builder は、デザイナー クラス パーツだけでなく、C# ユーザー クラス パーツおよび基本クラスに記述されたアウトレットを「認識」します。

さらに、アウトレットを手動で記述するのがはるかに簡単になりました。Outletたとえば、属性をプロパティに適用するだけです。

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

残念ながら、新しいモデルは、MonoDevelop が Interface Builder 3.2.x のアウトレットおよびアクションの作成と統合されなくなったことを意味します。Xcode 4 にアップグレードすることをお勧めします。MD 2.8 より前のプロジェクトの読み込みと編集は正常に動作するはずです。

http://docs.xamarin.com/ios/tutorials/transitioning_from_xcode_3_to_xcode_4を参照してください 。

于 2011-10-09T15:23:48.703 に答える