Xcode を使用したユーザー インターフェイスの設計
Visual Studio 2019 バージョン 16.8 と Visual Studio for Mac バージョン 8.8 以降では、.storyboard および .nib ファイルを編集するための推奨される方法は、Mac の Xcode Interface Builder で編集することです。
Note
Visual Studio 2019 バージョン 16.9 以降では、Windows で iOS ストーリーボードを編集するためのサポートされている方法はありません。 Visual Studio for Mac と Xcode Interface Builder を使用して、Xamarin.iOS ユーザー インターフェイスの構築を続けます。
この記事では、Xcode Interface Builder を使用してユーザー インターフェイスを構築するための一般的なソリューションについて説明します。 この記事は、Xamarin.iOS Designer で UI を以前に編集した場合に特に役立つことがあります。
ストーリーボードの詳細なチュートリアルについては、「Xamarin.iOS のストーリーボード」を参照してください。
ストーリーボードを開く方法
ストーリーボード ファイルを右クリックし、[Xcode Interface Builder] を選択して Visual Studio for Mac で iOS ユーザーインターフェイス ファイルを開きます。
Xcode ウィンドウが開くはずです。 ここに保存されたすべての編集内容は、Visual Studio プロジェクトに反映されます。
Xcode Interface Builder の詳細については、「組み込み Interface Builder」を参照してください。
新しいコントロールの作成
Xcode Interface Builder を使用して新しいコントロールを作成するには、最初に編集するストーリーボードを選択します。 その後、[Xcode ライブラリ] ダイアログ ([ビュー]>[ライブラリの表示] を) を開き、コントロールをストーリーボードにドラッグします。
次に、対応するビュー コントローラー ヘッダー ファイルを開きます。 空の "単一ビュー" Xamarin.iOS アプリの場合、既定のストーリーボードは Main.storyboard と呼ばれます。 対応するビュー コントローラー ファイルは、Visual Studio では ViewController.cs と呼ばれ、Xcode から表示すると、対応する ViewController.h ヘッダー ファイルが含まれます。
Xcode Interface Builder から、ストーリーボードと対応するビュー コントローラー ヘッダー ファイルの両方を開きます。 Control キー (^) を押したまま、Xcode によってダイアログ ボックスが表示されるまで、ストーリーボードからビュー コントローラー ファイルにコントロールをドラッグします。
上に示すように、対応する C# コードはビュー コントローラーの分離コード ファイルに自動的に生成されます。 Xamarin.iOS プロジェクト内でこのコントロールにアクセスできるようになりました。
既存のコントロールの名前の編集
Xcode Interface Builder から既存のコントロールの名前を編集し、その変更を C# プロジェクトに反映するには、適切なビュー コントローラー ヘッダー ファイルに移動して右クリックし、[リファクター] を選択します。
分離コード ファイルは新しい名前で再生成され、Visual Studio for Mac のコードを介してコントロールにアクセスできます。
既知の問題
このセクションでは、既知の問題について説明します。
"Visual Studio が Xcode と通信できませんでした"
macOS Catalina 以降では、以下のエラーが発生する可能性があります。
まず、Mac のシステム環境設定の [セキュリティとプライバシー]> [オートメーション] で、Visual Studio が一覧表示され、[Xcode] がオンになっていることを確かめます。
[Xcode] がオンになっていても、エラー メッセージが表示される場合は、Visual Studio for Mac のプライバシー アクセス許可のリセットが必要になることがあります。
これを行うには、ターミナル ウィンドウを起動し、次のコマンドを発行します。
sudo tccutil reset All "com.microsoft.visual-studio"
上記の変更を確実に有効にするには、Mac の PRAM をリセットします。 手順については、「Mac で NVRAM または PRAM をリセットする」を参照してください。