Respondente do VisualElement no iOS

Baixar exemplo Baixar o exemplo

Essa plataforma específica do iOS permite que um VisualElement objeto se torne o primeiro respondente a eventos de toque, em vez da página que contém o elemento. Ele é consumido em XAML definindo a propriedade associável VisualElement.CanBecomeFirstResponder como 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>

Como alternativa, ele pode ser consumido do C# usando a API fluente:

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);

O VisualElement.On<iOS> método especifica que esse específico da plataforma só será executado no iOS. O VisualElement.SetCanBecomeFirstResponder método, no Xamarin.Forms.PlatformConfiguration.iOSSpecific namespace , é usado para definir o VisualElement para se tornar o primeiro respondente para eventos de toque. Além disso, o VisualElement.CanBecomeFirstResponder método pode ser usado para retornar se o VisualElement é o primeiro respondente a eventos de toque.

O resultado é que um VisualElement pode se tornar o primeiro respondente para eventos de toque, em vez da página que contém o elemento. Isso permite que cenários como aplicativos de chat não ignorem um teclado quando um Button é tocado.