Compartir vía


Primer respondedor de VisualElement en iOS

Esta característica específica de la plataforma iOS permite a un objeto VisualElement convertirse en el primer respondedor para tocar eventos, en lugar de la página que contiene el elemento. Se consume en XAML estableciendo la propiedad VisualElement.CanBecomeFirstResponder enlazable en 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, se puede consumir desde C# mediante la API fluida:

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

El método VisualElement.On<iOS> especifica que esta plataforma específica solo se ejecutará en iOS. El método VisualElement.SetCanBecomeFirstResponder, del espacio de nombres Xamarin.Forms.PlatformConfiguration.iOSSpecific, se usa para establecer qué VisualElement se convierte en el primer respondedor para eventos táctiles. Además, el método VisualElement.CanBecomeFirstResponder se puede usar para devolver información sobre si VisualElement es el primer respondedor en tocar eventos.

El resultado es que un elemento VisualElement puede convertirse en el primer respondedor para eventos táctiles, en lugar de la página que contiene el elemento. Esto permite escenarios como aplicaciones de chat que no ignoran un teclado cuando se pulsa Button.