public static InputFieldView LinkToModel(this InputFieldView self, string val, Action <string> onNewVal)
 {
     if (val != null)
     {
         self.input.text = val;
     }
     self.AddOnValueChangedActionThrottled(onNewVal);
     return(self);
 }
        public static void AddOnValueChangedActionThrottled(this InputFieldView self, Action <string> onValueChanged)
        {
            ChangeTracker <string> changeTracker = new ChangeTracker <string>(null);

            self.input.AddOnValueChangedActionThrottled(newValue => {
                if (self.IsDestroyed())
                {
                    return;
                }
                var regexValidator = self.GetComponent <RegexValidator>();
                if (regexValidator != null && !regexValidator.CheckIfCurrentInputValid())
                {
                    return;
                }
                if (changeTracker.SetNewValue(newValue))
                {
                    onValueChanged(newValue);
                }
            });
        }