namespace UIWidgets.Examples { using UIWidgets; using UnityEngine; using UnityEngine.UI; /// /// AutocompleteIconsHelper. /// How to use AutocompleteIcons to select one item. /// public class AutocompleteIconsHelper : MonoBehaviour, IUpgradeable { /// /// Autocomplete. /// [SerializeField] public AutocompleteIcons Autocomplete; /// /// InputField. /// [SerializeField] [HideInInspector] [System.Obsolete("Replaced with InputAdapter.")] public InputField Input; /// /// InputField. /// [SerializeField] public InputFieldAdapter InputAdapter; [SerializeField] ListViewIconsItemDescription item; /// /// Selected item. /// public ListViewIconsItemDescription Item { get { return item; } set { InputAdapter.text = item.Name; item = value; } } /// /// Adds listeners. /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "HAA0603:Delegate allocation from a method group", Justification = "Required.")] protected virtual void Start() { InputAdapter.onEndEdit.AddListener(ResetItem); Autocomplete.OnOptionSelectedItem.AddListener(SetItem); } /// /// Remove listeners. /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "HAA0603:Delegate allocation from a method group", Justification = "Required.")] protected virtual void OnDestroy() { InputAdapter.onEndEdit.RemoveListener(ResetItem); Autocomplete.OnOptionSelectedItem.RemoveListener(SetItem); } /// /// Reset item. /// /// Input string. protected virtual void ResetItem(string str) { item = null; } /// /// Set item. /// /// Item. protected virtual void SetItem(ListViewIconsItemDescription it) { item = Autocomplete.TargetListView.DataSource[0]; Autocomplete.TargetListView.DataSource.Clear(); } /// /// Upgrade this instance. /// public virtual void Upgrade() { #pragma warning disable 0612, 0618 Utilities.GetOrAddComponent(Input, ref InputAdapter); #pragma warning restore 0612, 0618 } #if UNITY_EDITOR /// /// Validate this instance. /// protected virtual void OnValidate() { Compatibility.Upgrade(this); } #endif } }