iOS での VisualElement の最初のレスポンダー
この iOS プラットフォーム固有設定を使うと、要素を含むページではなく、VisualElement
オブジェクトをタッチ イベントの最初のレスポンダーにすることができます。 この機能を XAML で使用するには、バインド可能なプロパティ VisualElement.CanBecomeFirstResponder
を true
に設定します。
<ContentPage ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core">
<StackLayout>
<Entry Placeholder="Enter text" />
<Button ios:VisualElement.CanBecomeFirstResponder="True"
Text="OK" />
</StackLayout>
</ContentPage>
あるいは、Fluent API を使用して C# から使用することもできます。
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
Entry entry = new Entry { Placeholder = "Enter text" };
Button button = new Button { Text = "OK" };
button.On<iOS>().SetCanBecomeFirstResponder(true);
VisualElement.On<iOS>
メソッドは、このプラットフォーム固有が iOS でのみ実行されるように指定します。 タッチ イベントの最初のレスポンダーになるように VisualElement
を設定するには、Xamarin.Forms.PlatformConfiguration.iOSSpecific
名前空間の VisualElement.SetCanBecomeFirstResponder
メソッドを使います。 さらに、VisualElement.CanBecomeFirstResponder
メソッドを使うと、VisualElement
がタッチ イベントの最初のレスポンダーかどうかを取得できます。
結果では、要素を含むページではなく、VisualElement
がタッチ イベントの最初のレスポンダーになれることが示されます。 これにより、チャット アプリケーションで Button
がタップされたときにキーボードを閉じないようにする、といったシナリオが可能になります。