VisualElement First Responder unter iOS

Beispiel herunterladen Das Beispiel herunterladen

Mit dieser plattformspezifischen iOS-Plattform kann ein VisualElement Objekt der erste Antwort auf Touchereignisse werden und nicht die Seite, die das Element enthält. Sie wird in XAML verwendet, indem die VisualElement.CanBecomeFirstResponder bindbare Eigenschaft auf truefestgelegt wird:

<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 es über C# mithilfe der Fluent-API verwendet 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 VisualElement.On<iOS> -Methode gibt an, dass diese plattformspezifische Nur unter iOS ausgeführt wird. Die VisualElement.SetCanBecomeFirstResponder -Methode im Xamarin.Forms.PlatformConfiguration.iOSSpecific -Namespace wird verwendet, um festzulegen, dass der VisualElement erste Antwortgeber für Touchereignisse wird. Darüber hinaus kann die VisualElement.CanBecomeFirstResponder -Methode verwendet werden, um zurückzugeben, ob der VisualElement der erste Antwortgeber auf Touchereignisse ist.

Das Ergebnis ist, dass ein VisualElement nicht die Seite, die das Element enthält, zum ersten Responder für Touchereignisse werden kann. Dies ermöglicht Szenarien wie Chatanwendungen, die eine Tastatur nicht schließen, wenn auf eine Button getippt wird.