2017-10-14 3 views
0

Je travaille avec la barre de recherche dans les formes de xamarin. Je ne suis pas en mesure d'enlever le texte de recherche dans la barre de recherche en cliquant sur le bouton croix. J'utilise un moteur de rendu personnalisé pour supprimer le texte d'annulation dans la barre de recherche. Lorsque j'utilise ce moteur de rendu, je ne suis pas en mesure de supprimer le texte. Si je supprime ce moteur de rendu, cela fonctionne. quel est le problème que j'ai fait dans le fichier de rendu. Voici l'exemple de code dans le moteur de rendu pour cacher le bouton d'annulation à côté de la barre de recherche.Barre de recherche supprimer le texte ne fonctionne pas dans xamarin ios

Renderer Exemple de code:

protected override void OnElementPropertyChanged(object sender, PropertyChnagedEventArgs e) 
    { 

     Control.ShowCancelButton = false; 
    } 

enter image description here

Lorsque je tente de supprimer du texte dans la barre de recherche en cliquant sur l'image croix dans la barre de recherche, il ne fonctionne pas dans ios Xamarin mais il fonctionne très bien dans ios.

Exemple de code:

<StackLayout Grid.Column = "0" Orientation = "Horizontal"> 
<Image Source = "backarrow.png" HorizontalOptions = "StartAndExpand" VerticalOptions = "CenterAndExpand" />       
<controls:CustomSearchbar x:Name = "CustomSearchbar" BackgroundColor ="Transparent" Text ="{Binding SearchTag}" SearchCommand ="{Binding RestaurantSearchCommand}" GHorizontalOptions = "StartAndExpand" VerticalOptions = "CenterAndExpand" > 

est le code J'utilise ici pour la barre de recherche. Ici, la classe 'customsearchbar' est héritée de searchrenderer.

+0

Pourriez-vous partager votre code soit notre XAML que vous utilisez pour appeler la barre de recherche? – cvanbeek

+0

Bonjour cvanbeek, j'ajoute un code d'exemple que j'utilise. – Deepak

+0

Je ne peux pas reproduire votre problème. Cela fonctionne bien avec votre code (il y a quelques fautes d'orthographe) de mon côté. Je poste mon code pour vous. J'espère que cela aide! –

Répondre

0

Cela fonctionne très bien pour moi.

Voici mon code par exemple:

MySearchBar.cs dans PCL:

using Xamarin.Forms; 

namespace Kevin_XF 
{ 
    public class MySearchBar : SearchBar 
    { 

    } 
} 

MySearchBarRenderer.cs dans la plate-forme iOS:

using Xamarin.Forms; 
using Xamarin.Forms.Platform.iOS; 
using Kevin_XF.iOS; 
using Kevin_XF; 
using System.ComponentModel; 

[assembly: ExportRenderer(typeof(MySearchBar),typeof(MySearchBarRenderer))] 
namespace Kevin_XF.iOS 
{ 
    public class MySearchBarRenderer: SearchBarRenderer 
    { 

     protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) 
     { 
      base.OnElementPropertyChanged(sender, e); 

      if (Control != null) 
      { 
       Control.ShowsCancelButton = false; 
      } 
     } 
    } 
} 

Code XAML MainPage .xaml:

<StackLayout> 
     <local:MySearchBar x:Name = "CustomSearchbar" BackgroundColor ="Transparent" HorizontalOptions = "StartAndExpand" VerticalOptions = "CenterAndExpand" /> 
</StackLayout> 

Il fonctionne comme ceci:

enter image description here

+0

@Deepak, est-ce que ma réponse vous a aidé? –