VisualElement First Responder unter iOS
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 true
festgelegt 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.