Xamarin. Mac のツールバーToolbars in Xamarin.Mac

この記事では、Xamarin. Mac アプリケーションでのツールバーの使用について説明します。Xcode と Interface Builder でのツールバーの作成と保守、コードへの公開、プログラムによる作業について説明します。This article describes working with toolbars in a Xamarin.Mac application. It covers creating and maintaining toolbars in Xcode and Interface Builder, exposing them to code, and working with them programmatically.

Visual Studio for Mac と連携する Xamarin の開発者は、ツールバーコントロールなど、Xcode を操作する macOS 開発者が使用できるものと同じ UI コントロールにアクセスできます。Xamarin.Mac developers working with Visual Studio for Mac have access to the same UI controls available to macOS developers working with Xcode, including the toolbar control. Xcode は直接統合されているため、Xcode の Interface Builder を使用して、ツールバー項目を作成および管理することができます。Because Xamarin.Mac integrates directly with Xcode, it's possible to use Xcode's Interface Builder to create and maintain toolbar items. これらのツールバー項目は、C# でも作成できます。These toolbar items can also be created in C#.

MacOS のツールバーは、ウィンドウの上部のセクションに追加され、その機能に関連するコマンドに簡単にアクセスできるようになります。Toolbars in macOS are added to the top section of a window and provide easy access to commands related to its functionality. ツールバーは、アプリケーションのユーザーが非表示にしたり、表示したり、カスタマイズしたりすることができます。また、さまざまな方法でツールバー項目を表示することもできます。Toolbars can be hidden, shown, or customized by an application's users, and they can present toolbar items in various ways.

この記事では、Xamarin. Mac アプリケーションでのツールバーとツールバー項目の操作の基本について説明します。This article covers the basics of working with toolbars and toolbar items in a Xamarin.Mac application.

続行する前に、 Hello, Mac に関する記事を参照してください。具体的には、このガイド全体で使用される主要な概念と手法について説明している、「 Xcode And Interface Builderアウトレットとアクション の概要」セクションを参照してください。Before continuing, read through the Hello, Mac article — specifically the Introduction to Xcode and Interface Builder and Outlets and Actions sections — as it covers key concepts and techniques that will be used throughout this guide.

また、 Xamarin の内部ドキュメントの「 C# のクラス/メソッドを目的の C に公開する」セクションを参照してください。Also take a look at the Exposing C# classes / methods to Objective-C section of the Xamarin.Mac Internals document. Register Export C# クラスを目的の C クラスに接続するために使用される属性と属性について説明します。It explains the Register and Export attributes used to connect C# classes to Objective-C classes.

ツールバーの概要Introduction to toolbars

MacOS アプリケーションのウィンドウには、ツールバーを含めることができます。Any window in a macOS application can include a toolbar:

ツールバーのあるサンプルウィンドウAn example window with a toolbar

ツールバーは、アプリケーションのユーザーが重要な機能や一般的に使用される機能にすばやくアクセスするための簡単な方法を提供します。Toolbars provide an easy way for your application's users to quickly access important or commonly-used features. たとえば、ドキュメント編集アプリケーションでは、テキストの色の設定、フォントの変更、または現在のドキュメントの印刷を行うためのツールバー項目が提供される場合があります。For example, a document-editing application might provide toolbar items for setting the text color, changing the font, or printing the current document.

ツールバーには、次の3つの方法で項目を表示できます。Toolbars can display items in three ways:

  1. アイコンとテキストIcon and Text

    アイコンとテキストを含むツールバーA toolbar with icons and text

  2. アイコンのみIcon Only

    アイコンのみのツールバーAn icon-only toolbar

  3. テキストのみText Only

    テキストのみのツールバーA text-only toolbar

これらのモードを切り替えるには、ツールバーを右クリックし、コンテキストメニューから表示モードを選択します。Switch between these modes by right-clicking the toolbar and selecting a display mode from the contextual menu:

ツールバーのコンテキストメニューThe contextual menu for a toolbar

同じメニューを使用して、小さいサイズでツールバーを表示します。Use the same menu to display the toolbar at a smaller size:

小さいアイコンを含むツールバーA toolbar with small icons

メニューでは、ツールバーをカスタマイズすることもできます。The menu also allows for customizing the toolbar:

ツールバーのカスタマイズに使用するダイアログThe dialog used to customize a toolbar

Xcode の Interface Builder でツールバーを設定すると、開発者は既定の構成の一部ではないツールバー項目を追加できます。When setting up a toolbar in Xcode's Interface Builder, a developer can provide extra toolbar items that are not part of its default configuration. アプリケーションのユーザーは、ツールバーをカスタマイズし、必要に応じて事前定義された項目を追加および削除できます。Users of the application can then customize the toolbar, adding and removing these pre-defined items as necessary. もちろん、ツールバーは既定の構成にリセットできます。Of course, the toolbar can be reset to its default configuration.

ツールバーは自動的に [ 表示 ] メニューに接続し、ユーザーはこのメニューを非表示にしたり、表示したり、カスタマイズしたりできます。The toolbar automatically connects to the View menu, which allows users to hide it, show it, and customize it:

[表示] メニューのツールバーに関連する項目Toolbar-related items in the View menu

詳細については、 組み込みのメニュー機能 に関するドキュメントを参照してください。See the Built-In Menu Functionality documentation for more details.

また、ツールバーが Interface Builder で適切に構成されている場合、アプリケーションの複数の起動にわたって、ツールバーのカスタマイズが自動的に保持されます。Additionally, if the toolbar is properly configured in Interface Builder, the application will automatically persist toolbar customizations across multiple launches of the application.

このガイドの次のセクションでは、Xcode の Interface Builder を使用してツールバーを作成および管理する方法と、それらをコードで操作する方法について説明します。The next sections of this guide describe how to create and maintain toolbars with Xcode's Interface Builder and how to work with them in code.

カスタムメインウィンドウコントローラーの設定Setting a custom main window controller

アウトレットとアクションを使用して UI 要素を C# コードに公開するには、Xamarin. Mac アプリでカスタムウィンドウコントローラーを使用する必要があります。To expose UI elements to C# code through outlets and actions, the Xamarin.Mac app must use a custom window controller:

  1. Xcode の Interface Builder でアプリのストーリーボードを開きます。Open the app's storyboard in Xcode's Interface Builder.

  2. デザイン画面でウィンドウコントローラーを選択します。Select the window controller on the design surface.

  3. Id インスペクターに切り替え、クラス名として「windowcontroller」と入力します。Switch to the Identity Inspector and enter "WindowController" as the Class Name:

    ウィンドウコントローラーのカスタムクラス名の設定Setting a custom class name for the window controller

  4. 変更を保存し、Visual Studio for Mac に戻って同期します。Save your changes and return to Visual Studio for Mac to sync.

  5. Visual Studio for Mac のSolution Padに、 WindowController.csファイルがプロジェクトに追加されます。A WindowController.cs file will be added to your project in the Solution Pad in Visual Studio for Mac:

    Solution Pad での WindowController.cs の選択Selecting WindowController.cs in the Solution Pad

  6. Xcode の Interface Builder でストーリーボードを再度開きます。Reopen the storyboard in Xcode's Interface Builder.

  7. Windowcontroller .hファイルは、次のように使用できます。The WindowController.h file will be available for use:

    WindowController .h ファイルThe WindowController.h file

Xcode でのツールバーの作成と保守Creating and maintaining toolbars in Xcode

ツールバーは、Xcode の Interface Builder を使用して作成および管理されます。Toolbars are created and maintained with Xcode's Interface Builder. アプリケーションにツールバーを追加するには、 Solution Padでダブルクリックして、アプリのプライマリストーリーボード (この場合はメインストーリーボード) を編集します。To add a toolbar to an application, edit the app's primary storyboard (in this case Main.storyboard) by double-clicking it in the Solution Pad:

Solution Pad でメインストーリーボードを開いていますOpening Main.storyboard in the Solution Pad

ライブラリインスペクターで、検索ボックスに「tool」と入力して、使用可能なすべてのツールバー項目を表示しやすくします。In the Library Inspector, enter "tool" in the Search Box to make it easier to see all of the available toolbar items:

ツールバー項目を表示するためにフィルター処理されたライブラリインスペクターThe Library Inspector, filtered to show toolbar items

インターフェイスエディターで、ツールバーをウィンドウにドラッグします。Drag a toolbar onto the window in the Interface Editor. ツールバーを選択した状態で、 属性インスペクターでプロパティを設定して動作を構成します。With the toolbar selected, configure its behavior by setting properties in the Attributes Inspector:

ツールバーの属性インスペクターThe Attributes Inspector for a toolbar

使用できるプロパティは次のとおりです。The following properties are available:

  1. 表示 -ツールバーにアイコン、テキスト、またはその両方を表示するかどうかを制御しますDisplay - Controls whether the toolbar displays icons, text, or both
  2. [起動時に表示する]-オンにすると、ツールバーが既定で表示されます。Visible at Launch - If selected, the toolbar is visible by default.
  3. カスタマイズ可能 -選択されている場合、ユーザーはツールバーを編集およびカスタマイズできます。Customizable - If selected, users can edit and customize the toolbar.
  4. Separator -選択されている場合、細い水平線はウィンドウのコンテンツからツールバーを分離します。Separator - If selected, a thin horizontal line separates the toolbar from the window's contents.
  5. [サイズ]-ツールバーのサイズを設定します。Size - Sets the size of the toolbar
  6. [自動保存]: オンにすると、アプリケーションの起動時にユーザーのツールバーの構成の変更が保持されます。Autosave - If selected, the application will persist a user's toolbar configuration changes across application launches.

[ 自動保存 ] オプションを選択し、その他のプロパティはすべて既定の設定のままにします。Select the Autosave option and leave all the other properties at their default settings.

インターフェイス階層でツールバーを開いた後、ツールバー項目を選択してカスタマイズダイアログを表示します。After opening the toolbar in the Interface Hierarchy, bring up the customization dialog by selecting a toolbar item:

ツール バーのカスタマイズCustomizing the toolbar

このダイアログボックスを使用すると、既にツールバーの一部である項目のプロパティを設定したり、アプリケーションの既定のツールバーをデザインしたり、ツールバーをカスタマイズするときにユーザーが選択する追加のツールバー項目を指定したりできます。Use this dialog to set properties for items that are already part of the toolbar, to design the default toolbar for the application, and to provide extra toolbar items for a user to select when customizing the toolbar. ツールバーに項目を追加するには、 ライブラリインスペクターから項目をドラッグします。To add items to the toolbar, drag them from the Library Inspector:

ライブラリインスペクターThe Library Inspector

次のツールバー項目を追加できます。The following toolbar items can be added:

  • イメージツールバー項目 -カスタムイメージをアイコンとして持つツールバー項目。Image Toolbar Item - A toolbar item with a custom image as an icon.

  • 柔軟な領域ツールバー項目 -後続のツールバー項目を揃えるために使用される柔軟な領域。Flexible Space Toolbar Item - Flexible space used to justify subsequent toolbar items. たとえば、1つまたは複数のツールバー項目の後に柔軟な領域のツールバー項目があり、もう1つのツールバー項目によって、最後の項目がツールバーの右側にピン留めされます。For example, one or more toolbar items followed by a flexible space toolbar item and another toolbar item would pin the last item to the right side of the toolbar.

  • スペースツールバー項目 -ツールバーの項目間の固定スペースSpace Toolbar Item - Fixed space between items on the toolbar

  • Separator ツールバー項目 -複数のツールバー項目の間に表示される区切り記号。グループ化する場合Separator Toolbar Item - A visible separator between two or more toolbar items, for grouping

  • ツールバー項目のカスタマイズ -ユーザーがツールバーをカスタマイズできるようにします。Customize Toolbar Item - Allows users to customize the toolbar

  • [ツールバー項目の印刷] -ユーザーが開いているドキュメントを印刷できるようにします。Print Toolbar Item - Allows users to print the open document

  • [色の表示] ツールバー項目-標準のシステムカラーピッカーが表示されます。Show Colors Toolbar Item - Displays the standard system color picker:

    システムカラーピッカーThe system color picker

  • [フォントツールバー項目の表示]: 標準のシステムフォントダイアログが表示されます。Show Font Toolbar Item - Displays the standard system font dialog:

    フォントセレクターThe font selector

重要

後で説明するように、ツールバーには、検索フィールド、セグメント化されたコントロール、水平方向のスライダーなど、多くの標準的な Cocoa UI コントロールを追加することもできます。As will be seen later, many standard Cocoa UI controls such as search fields, segmented controls, and horizontal sliders can also be added to a toolbar.

ツールバーへの項目の追加Adding an item to a toolbar

ツールバーに項目を追加するには、 インターフェイス階層 でツールバーを選択し、項目のいずれかをクリックすると、カスタマイズダイアログが表示されます。To add an item to a toolbar, select the toolbar in the Interface Hierarchy and click one of its items, causing the customization dialog to appear. 次に、 ライブラリインスペクター から、[許可されている ツールバーアイテム] 領域に新しいアイテムをドラッグします。Next, drag a new item from the Library Inspector to the Allowed Toolbar Items area:

ツールバーのカスタマイズダイアログで使用できるツールバー項目The Allowed Toolbar Items in the toolbar customization dialog

新しい項目が既定のツールバーの一部であることを確認するには、[ 既定のツールバー項目 ] 領域にドラッグします。To make sure that a new item is part of the default toolbar, drag it to the Default Toolbar Items area:

ドラッグしてツールバー項目を並べ替えるReordering a toolbar item by dragging

既定のツールバー項目の順序を変更するには、それらを左または右にドラッグします。To reorder default toolbar items, drag them left or right.

次に、 属性インスペクター を使用して、項目の既定のプロパティを設定します。Next, use the Attributes Inspector to set default properties for the item:

属性インスペクターを使用したツールバーアイテムのカスタマイズCustomizing a toolbar item using the Attributes Inspector

使用できるプロパティは次のとおりです。The following properties are available:

  • イメージ名 -項目のアイコンとして使用するイメージImage Name - Image to use as an icon for the item
  • ラベル -ツールバーの項目に表示するテキストLabel - Text to display for the item in the toolbar
  • パレットラベル -[ 許可されたツールバーアイテム] 領域のアイテムに表示するテキストPalette Label - Text to display for the item in the Allowed Toolbar Items area
  • Tag -コード内の項目を識別するために使用できる、省略可能な一意の識別子。Tag - An optional, unique identifier that helps identify the item in code.
  • 識別子 -ツールバー項目の種類を定義します。Identifier - Defines the toolbar item type. カスタム値を使用して、コード内のツールバー項目を選択できます。A custom value can be used to select a toolbar item in code.
  • 選択可能 -オンの場合、項目はオン/オフボタンのように動作します。Selectable - If checked, the item will act like an on/off button.

重要

[許可されている ツールバー項目 ] 領域に項目を追加します。ただし、既定のツールバーではなく、ユーザーのカスタマイズオプションを提供します。Add an item to the Allowed Toolbar Items area but not the default toolbar to provide customization options for users.

ツールバーへの他の UI コントロールの追加Adding other UI controls to a toolbar

検索フィールドやセグメント化されたコントロールなど、いくつかの Cocoa UI 要素をツールバーに追加することもできます。Several Cocoa UI elements such as search fields and segmented controls can also be added to a toolbar.

これを試すには、 インターフェイス階層 のツールバーを開き、ツールバー項目を選択して、カスタマイズダイアログを開きます。To try this, open the toolbar in the Interface Hierarchy and select a toolbar item to open the customization dialog. [ライブラリインスペクター ] から [許可されているツールバーアイテム] 領域に検索フィールドをドラッグします。Drag a Search Field from the Library Inspector to the Allowed Toolbar Items area:

ツールバーのカスタマイズダイアログの使用Using the toolbar customization dialog

ここでは、Interface Builder を使用して検索フィールドを構成し、アクションまたはアウトレットを通じてコードに公開します。From here, use Interface Builder to configure the search field and expose it to code through an action or outlet.

組み込みのツールバー項目のサポートBuilt-in toolbar item support

いくつかの Cocoa UI 要素は、既定で標準のツールバー項目と対話します。Several Cocoa UI elements interact with standard toolbar items by default. たとえば、 テキストビュー をアプリケーションのウィンドウにドラッグして、コンテンツ領域に収まるように配置します。For example, drag a Text View onto the application's window and position it to fill the content area:

アプリケーションへのテキストビューの追加Adding a text view to the application

ドキュメントを保存し、Visual Studio for Mac に戻って Xcode と同期し、アプリケーションを実行して、テキストを入力して選択し、[ ] ツールバー項目をクリックします。Save the document, return to Visual Studio for Mac to sync with Xcode, run the application, enter some text, select it, and click the Colors toolbar item. [テキスト] ビューが自動的にカラーピッカーで動作することに注意してください。Notice that the text view automatically works with the color picker:

テキストビューとカラーピッカーを使用した組み込みのツールバー機能Built-in toolbar functionality with a text view and color picker

ツールバー項目を含むイメージの使用Using images with toolbar items

イメージツールバー項目を使用すると、 Resourcesフォルダーに追加されたビットマップイメージ (およびバンドルリソースのビルドアクション) を、ツールバーにアイコンとして表示できます。Using an Image Toolbar Item, any bitmap image added to the Resources folder (and given a build action of Bundle Resource) can be displayed on the toolbar as an icon:

  1. Visual Studio for Mac のSolution Padで、[リソース] フォルダーを右クリックし、[追加] [ファイル] の順に選択し > Add Filesます。In Visual Studio for Mac, in the Solution Pad, right-click the Resources folder and select Add > Add Files.

  2. [ ファイルの追加 ] ダイアログボックスで目的のイメージに移動し、選択して [ 開く ] ボタンをクリックします。From the Add Files dialog box, navigate to the desired images, select them and click the Open button:

    追加するイメージの選択Selecting images to add

  3. [ コピー] を選択し、[ 選択したすべてのファイルに同じアクションを使用する] をオンにして、[ OK] をクリックします。Select Copy, check Use the same action for all selected files, and click OK:

    追加したイメージのコピー操作を選択するSelecting the copy action for the added images

  4. Solution Padで、mainwindow.xaml をダブルクリックして Xcode で開きます In the Solution Pad, double-click MainWindow.xib to open it in Xcode.

  5. インターフェイス階層のツールバーを選択し、そのいずれかの項目をクリックして、カスタマイズダイアログを開きます。Select the toolbar in the Interface Hierarchy and click one of its items to open the customization dialog.

  6. ライブラリインスペクターから、ツールバーの [使用できるツールバー項目] 領域に、イメージツールバー項目をドラッグします。Drag an Image Toolbar Item from the Library Inspector to the toolbar's Allowed Toolbar Items area:

    許可されているツールバー項目領域に追加されたイメージツールバー項目An Image Toolbar Item added to the Allowed Toolbar Items area

  7. [ 属性] インスペクターで、Visual Studio for Mac に追加したイメージを選択します。In the Attributes Inspector, select the image that was just added in Visual Studio for Mac:

    ツールバーアイテムのカスタムイメージの設定Setting a custom image for a toolbar item

  8. ラベルを "ごみ箱" に設定し、[パレット] ラベルを "Erase Document" に設定します。Set the Label to "Trash" and the Palette Label to "Erase Document":

    ツールバー項目のラベルとパレットラベルの設定Setting the toolbar item Label and Palette Label

  9. [ライブラリ] インスペクターから、ツールバーの [許可されたツールバーアイテム] 領域に、区切りツールバーアイテムをドラッグします。Drag a Separator Toolbar Item from the Library Inspector to the toolbar's Allowed Toolbar Items area:

    [許可されたツールバーアイテム] 領域に追加された区切りツールバーアイテムA Separator Toolbar Item added to the Allowed Toolbar Items area

  10. 区分項目と "ごみ箱" 項目を 既定のツールバー項目 領域にドラッグし、次のようにツールバー項目の順序を左から右に設定します (色、フォント、区切り文字、ごみ箱、フレキシブルスペース、印刷)。Drag the separator item and the "Trash" item to the Default Toolbar Items area and set the order of the toolbar items from left to right as follows (Colors, Fonts, Separator, Trash, Flexible Space, Print):

    既定のツールバー項目The default toolbar items

  11. Xcode と同期するには、変更を保存して Visual Studio for Mac に戻ります。Save changes and return to Visual Studio for Mac to sync with Xcode.

アプリケーションを実行して、新しいツールバーが既定で表示されていることを確認します。Run the application to verify that the new toolbar is displayed by default:

カスタマイズされた既定の項目を含むツールバーA toolbar with customized default items

アウトレットとアクションを使用したツールバーアイテムの公開Exposing toolbar items with outlets and actions

コード内のツールバーまたはツールバーアイテムにアクセスするには、アウトレットまたはアクションにアタッチする必要があります。To access a toolbar or toolbar item in code, it must be attached to an outlet or an action:

  1. Solution Pad、[Xcode ] をダブルクリックして開きます。In the Solution Pad, double-click Main.storyboard to open it in Xcode.

  2. カスタムクラス "WindowController" が Id インスペクターのメインウィンドウコントローラーに割り当てられていることを確認します。Ensure that the custom class "WindowController" has been assigned to the main window controller in the Identity Inspector:

    Id インスペクターを使用してウィンドウコントローラーのカスタムクラスを設定するUsing the Identity Inspector to set a custom class for the window controller

  3. 次に、 インターフェイス階層内のツールバー項目を選択します。Next, select the toolbar item in the Interface Hierarchy:

    インターフェイス階層内のツールバー項目の選択Selecting the toolbar item in the Interface Hierarchy

  4. アシスタントビューを開き、 windowcontroller .hファイルを選択して、ツールバー項目からwindowcontroller .hファイルに制御をドラッグします。Open the Assistant View, select the WindowController.h file, and control-drag from the toolbar item to the WindowController.h file.

  5. [ 接続 の種類] を [ アクション] に設定し、 名前として「trashdocument」と入力して、[ 接続 ] ボタンをクリックします。Set the Connection type to Action, enter "trashDocument" for the Name, and click the Connect button:

    ツールバーアイテムのアクションを構成するConfiguring an action for a toolbar item

  6. テキストビューviewcontroller .hファイルの "documenteditor" というアウトレットとして公開します。Expose the Text View as an outlet called "documentEditor" in the ViewController.h file:

    テキストビューのアウトレットの構成Configuring an outlet for the text view

  7. 変更を保存し Visual Studio for Mac に戻り、Xcode と同期します。Save your changes and return to Visual Studio for Mac to sync with Xcode.

Visual Studio for Mac で、 ViewController.cs ファイルを編集し、次のコードを追加します。In Visual Studio for Mac, edit the ViewController.cs file and add the following code:

public void EraseDocument() {
    documentEditor.Value = "";
}

次に、 WindowController.cs ファイルを編集し、クラスの下部に次のコードを追加し WindowController ます。Next, edit the WindowController.cs file and add the following code to the bottom of the WindowController class:

[Export ("trashDocument:")]
void TrashDocument (NSObject sender) {

    var controller = ContentViewController as ViewController;
    controller.EraseDocument ();
}

アプリケーションを実行すると、 ごみ箱 のツールバー項目がアクティブになります。When running the application, the Trash toolbar item will be active:

アクティブなごみ箱項目があるツールバーA toolbar with an active trash item

ごみ箱のツールバー項目を使用して、テキストを削除できることに注意してください。Notice that the Trash toolbar item can now be used to delete text.

ツールバー項目の無効化Disabling toolbar items

ツールバーの項目を無効にするには、カスタムクラスを作成 NSToolbarItem し、メソッドをオーバーライドし Validate ます。To disable an item on a toolbar, create a custom NSToolbarItem class and override the Validate method. 次に、Interface Builder で、有効または無効にする項目にカスタム型を割り当てます。Then, in Interface Builder, assign the custom type to the item that you want to enable/disable.

カスタムクラスを作成するには、 NSToolbarItem プロジェクトを右クリックし、 Add[ > 新しいファイルの追加...] を選択します。[汎用空のクラス] を選択し、名前として > Empty Class「ActivatableItem」と入力して、[新規] ボタンをクリックします。 NameTo create a custom NSToolbarItem class, right-click on the project and select Add > New File.... Select General > Empty Class, enter "ActivatableItem" for the Name, and click the New button:

Visual Studio for Mac に空のクラスを追加するAdding an empty class in Visual Studio for Mac

次に、 ActivatableItem.cs ファイルを編集して次のように読み取ります。Next, edit the ActivatableItem.cs file to read as follows:

using System;

using Foundation;
using AppKit;

namespace MacToolbar
{
    [Register("ActivatableItem")]
    public class ActivatableItem : NSToolbarItem
    {
        public bool Active { get; set;} = true;

        public ActivatableItem ()
        {
        }

        public ActivatableItem (IntPtr handle) : base (handle)
        {
        }

        public ActivatableItem (NSObjectFlag  t) : base (t)
        {
        }

        public ActivatableItem (string title) : base (title)
        {
        }

        public override void Validate ()
        {
            base.Validate ();
            Enabled = Active;
        }
    }
}

Xcode をダブル クリックし て開きます。Double-click Main.storyboard to open it in Xcode. 上で作成した ごみ箱 ツールバー項目を選択し、 id インスペクターでクラスを "ActivatableItem" に変更します。Select the Trash toolbar item created above and change its class to "ActivatableItem" in the Identity Inspector:

ツールバー項目のカスタムクラスの設定Setting a custom class for a toolbar item

trashItemごみ箱のツールバー項目に対してというアウトレットを作成します。Create an outlet called trashItem for the Trash toolbar item. Xcode と同期するには、変更を保存して Visual Studio for Mac に戻ります。Save changes and return to Visual Studio for Mac to sync with Xcode. 最後に、 MainWindow.cs を開き、メソッドを更新し AwakeFromNib て次のように読み取ります。Finally, open MainWindow.cs and update the AwakeFromNib method to read as follows:

public override void AwakeFromNib ()
{
    base.AwakeFromNib ();

    // Disable trash
    trashItem.Active = false;
}

アプリケーションを実行し、 ごみ箱 の項目がツールバーで無効になっていることを確認します。Run the application and note that the Trash item is now disabled in the toolbar:

非アクティブなごみ箱項目を含むツールバーA toolbar with an inactive trash item

まとめSummary

この記事では、Xamarin. Mac アプリケーションでのツールバーとツールバー項目の使用方法について詳しく説明しました。This article has taken a detailed look at working with toolbars and toolbar items in a Xamarin.Mac application. ここでは、Xcode の Interface Builder でツールバーを作成して管理する方法、いくつかの UI コントロールがツールバーの項目を自動的に操作する方法、C# コードのツールバーを操作する方法、およびツールバーの項目を有効または無効にする方法について説明します。It described how to create and maintain toolbars in Xcode's Interface Builder, how some UI controls automatically work with toolbar items, how to work with toolbars in C# code, and how to enable and disable toolbar items.