FireMonkey のネイティブ iOS コントロール
このトピックでは、FireMonkey のネイティブ iOS コントロールについて説明します。
目次
FireMonkey のネイティブ iOS コントロールの表示
FireMonkey は、特定のビジュアル コンポーネントに対し、ネイティブのプレゼンテーションを提供しています。
- ControlType プロパティを
Styled
に設定すると、コントロールの標準 FireMonkey プレゼンテーションとなります。Styled
は、ControlType のデフォルト値です。 - ControlType プロパティを
Platform
に設定すると、そのコントロールのネイティブ スタイルとなります。
使用可能な FireMonkey ネイティブ iOS コントロール
ネイティブ表示をサポートしているコントロールは次のとおりです。
- TCalendar
- TEdit
- TListView
- TMemo
- スクロール ボックス コントロール: TPresentedScrollBox、TPresentedVertScrollBox、TPresentedHorzScrollBox、TPresentedFramedScrollBox、TPresentedFramedVertScrollBox
- TSwitch
ネイティブ iOS コントロールの外見の変化
ビジュアル コンポーネントの ControlType プロパティを Platform
に設定した場合、フォーム デザイナでのこのコントロールの表示は、ネイティブ コントロールであることを示すように変わり、スマートフォンのような小さいアイコンが右下隅に表示されます。
次の表では、ControlType プロパティを Styled
と Platform
に設定した場合の設計時および実行時のネイティブ iOS コントロールの外見をいくつか例図で示します。
コントロール | 設計時 | 実行時 | ||
---|---|---|---|---|
Styled
|
Platform
|
Styled
|
Platform
| |
|
|
|
|
アプリケーションへのネイティブ iOS コントロールの追加
アプリケーションにネイティブ iOS コントロールを追加するには:
- ネイティブ表示をサポートしているコンポーネントをフォームにドロップします(サポートされているコントロールのリストを参照)。
- オブジェクト インスペクタの[プロパティ]で、ControlType プロパティを
Platform
に設定します。設計時のコンポーネントのプレゼンテーションが変わります(「ネイティブ iOS コントロールの外見の変化」を参照)。 - iOS デバイスか iOS シミュレータのどちらかでアプリケーションを実行します。
代わりに、実行時に ControlType の値を変更することも可能です。TEdit コントロールのネイティブ プレゼンテーションを選択するには、次のコードをアプリケーションに追加します。
Edit1.ControlType := TPresentedControl.TControlType.Platform;
Edit1->ControlType = TPresentedControl::TControlType::Platform;
ネイティブ iOS コントロールと非ネイティブ コントロールの組み合わせ
非ネイティブ コントロールをネイティブ コントロールと一緒に使うのは推奨されません。ネイティブ コントロールはフォームの Z オーダーをサポートしていないからです。ネイティブ コントロールは常に、フォーム上の他のコントロールの一番上にきます。しかし、ネイティブ コントロールの Z オーダーをサポートしているため、ネイティブ コントロールと組み合わせることのできる非ネイティブ コントロールもあります。
次にリストには、ControlType プロパティを持ち、ネイティブ コントロールと組み合わせることができるコントロールがすべて一覧されています。
- TMultiView
- TButton
- TSpeedButton
- TColorButton
- TCornerButton
- TPopupBox
- TMagnifierGlass
- TPanel
- TLabel
- TCheckBox
- TRadioButton
- TGroupBox
- TStatusBar
- TToolBar
- TProgressBar
- TTrackBar
次にリストには、ControlType プロパティを持っていないが、ネイティブ コントロールと組み合わせることができるコントロールがすべて一覧されています。
ネイティブ iOS コントロールの利点
コントロールの中には、ネイティブ コントロールとして使用した場合に追加機能をサポートするものがあります。
TMemo と TEdit
- 自動修正: 単語の入力中に候補が表示され、スペース キーを押してそれらを使用することができます。
- テキスト置換: スペルミスと認識された単語に赤い下線が引かれます。その単語をタップすると、吹き出しに置換候補が表示されます。置換候補の単語は、テキストを選択して[置き換える...]ボタンをクリックしても表示されます。
- 定義: 単語を選択して[辞書]をクリックすると、辞書におけるその単語の定義が表示されます。
- ピリオドの簡易入力: スペース キーをダブル タップすると、ピリオドとスペースが挿入されます。
- ショートカット: 入力時に語句に展開されます。
- 電話番号やアドレスの検出。
- メモ: iOS で[設定|一般|キーボード]を選択して開いたページで、これらの機能の一部をオンまたはオフに設定することができます。
上記の機能の一部は、コントロールのコンテキスト メニューで提供されており、このため、メモ コントロールや編集コントロールのコンテキスト メニューは、Styled
や Platform
で変わってきます。
コントロール | コンテキスト メニュー(Styled の場合)
|
コンテキスト メニュー(Platform の場合)
|
---|---|---|
TListView
リスト ビューには NativeOptions というプロパティがあり、そのサブプロパティを使用して、リスト ビューのネイティブ表示をカスタマイズすることができます。
ネイティブ iOS コントロールの制限事項
ネイティブ コントロールを使用する場合は、その前に、次の制限事項を考慮してください。
- ネイティブ コントロールは、事前定義スタイルやカスタム スタイルをサポートしていません。ネイティブ コントロールの ControlType プロパティが
Platform
に設定されている場合、StyleLookup プロパティの値は無視されます。 - ネイティブ コントロールは、フォームの Z オーダーをサポートしません。ネイティブ コントロールは常に、フォーム上の他の利用可能な FireMonkey コントロールの一番上にきます。詳細については、「ネイティブ iOS コントロールと非ネイティブ コントロールの組み合わせ」を参照してください。
- 以下のイベント ハンドラはサポートされておらず、実装することができません。
いくつかのコントロール固有の制限もあります。
TCalendar
カレンダー ビューのネイティブ表示では、丸 1 か月は表示されず、そのため、次のプロパティはサポートされていません。
TListView
コントロールの種類が Styled
の場合と同様に、コントロールの種類が Platform
であるリスト ビューの外観や動作も、ItemAppearance などのリスト ビュー コントロールのプロパティに応じて変わります。ただし、リスト ビューのネイティブ表示は、リスト ビュー コントロールに固有の制限事項にも影響されます。
- スタイル関連のすべてのプロパティがネイティブ表示で効果があるわけではなく、スタイル付き外観モード用に作られたデフォルト以外のオプションはネイティブ表示では利用できません。ネイティブ表示のリスト ビューでは、ターゲット プラットフォームのデフォルトのスタイル設定、位置揃え、配置が使用されます。NativeOptions.Styled を有効にするとリストのネイティブ表示の外観をカスタマイズできますが、ControlType が
Styled
の場合ほど多くの点でリストの外観をカスタマイズすることはできません。 - 編集モード時の外観に指定できるのは、リスト ビューにチェック ボックスまたは削除ボタンを表示するかどうかだけです。それ以外の効果はありません。
- スワイプ削除機能が有効なのは、編集モード時の外観として削除ボタンを表示するよう選択している場合だけです。
- 画像およびボタンの位置揃えおよび配置を変更することはできません。画像は左側に、ボタンは右側に表示されます。
- アニメーションとタイミングは、コントロールの種類が
Styled
であるリスト ビューとは異なる可能性があります。 - 項目ヘッダーは常に固定されています。
- 検索ボックスを常に最前面に表示する機能は、ヘッダーがない場合にのみ有効です。
- OnItemClickEx イベントでは、クリック位置やクリックされたオブジェクトの情報が提供されません。
関連項目
- FireMonkey ネイティブ コントロール
- FireMonkey ネイティブ Windows コントロール
- TPresentedControl.ControlType
- FireMonkey リスト ビューの外観のカスタマイズ