VisualElement first responder on iOS

Mit dieser plattformspezifischen iOS-Plattform kann ein VisualElement Objekt nicht die Seite, die das Element enthält, zum ersten Responder für Touchereignisse werden. Sie wird in XAML genutzt, indem sie die VisualElement.CanBecomeFirstResponder bindungsfähige Eigenschaft auf true setzt:

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

Alternativ kann sie mit der Fluent-API von C# genutzt werden:

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

Die Methode VisualElement.On<iOS> gibt an, dass diese plattformspezifische Funktion nur unter iOS ausführbar ist. Die VisualElement.SetCanBecomeFirstResponder Methode im Xamarin.Forms.PlatformConfiguration.iOSSpecific Namespace wird verwendet, um den VisualElement ersten Responder für Touchereignisse zu werden. Darüber hinaus kann die VisualElement.CanBecomeFirstResponder Methode verwendet werden, um zurückzugeben, ob es sich bei dem VisualElement ersten Responder um Touchereignisse handelt.

Das Ergebnis ist, dass ein VisualElement Benutzer anstelle der Seite, die das Element enthält, der erste Responder für Touchereignisse werden kann. Dies ermöglicht Szenarien wie Chatanwendungen, die eine Tastatur nicht schließen, wenn sie Button angetippt wird.