void ReleaseDesignerOutlets() { if (IssueNumberTextField != null) { IssueNumberTextField.Dispose(); IssueNumberTextField = null; } if (StartDateTextField != null) { StartDateTextField.Dispose(); StartDateTextField = null; } if (StartDatePlaceHolder != null) { StartDatePlaceHolder.Dispose(); StartDatePlaceHolder = null; } if (StartDateWarningLabel != null) { StartDateWarningLabel.Dispose(); StartDateWarningLabel = null; } }
public override void SetUpCell() { StartDateTextField.ShouldChangeCharacters = (UITextField textField, NSRange nsRange, string replacementString) => { if (replacementString != "" && !Char.IsDigit(replacementString.ToCharArray() [0])) { return(false); } CSRange range = new CSRange((int)nsRange.Location, (int)nsRange.Length); DispatchQueue.MainQueue.DispatchAsync(() => { UpdateUI(); }); bool changeText = true; if (range.Length > 1) { return(false); } if (replacementString.Length > 1) { return(false); } if (replacementString.Length == 1 && !char.IsDigit(replacementString.ToCharArray() [0])) { return(false); } if (textField.Text.Length + replacementString.Length - range.Length > 5) { return(false); } int textLengthAfter = (int)(textField.Text.Length + replacementString.Length - range.Length); if (replacementString.Length == 0 && range.Location < 2 && textField.Text.Contains("/")) { textField.Text = textField.Text.Replace(@"/", @""); textLengthAfter--; } if (range.Length == 1 && textField.Text.Substring(range.Location, 1) == "/") { textField.Text = textField.Text.Substring(0, 1); textLengthAfter = 1; changeText = false; } if (range.Location == 1 && textField.Text.Length == 1) { var aStringBuilder = new StringBuilder(textField.Text); aStringBuilder.Remove(range.Location, range.Length); aStringBuilder.Insert(range.Location, replacementString); string newTextOrig = aStringBuilder.ToString(); string text = newTextOrig; if (Int32.Parse(text) > 12 || Int32.Parse(text) == 0) { FlashCheckDateLabel(); return(false); } textField.Text = text; textField.Text = textField.Text + @"/"; textLengthAfter++; changeText = false; } else if (range.Location == 0 && textField.Text.Length == 0) { if (replacementString.Substring(0, 1).ToCharArray() [0] > '1') { var formatedString = string.Format(@"0{0}/", replacementString); var aStringBuilder = new StringBuilder(textField.Text); aStringBuilder.Remove(range.Location, range.Length); aStringBuilder.Insert(range.Location, formatedString); textField.Text = aStringBuilder.ToString(); textLengthAfter += 2; changeText = false; } } if (textLengthAfter >= 4) { var aStringBuilder = new StringBuilder(textField.Text); aStringBuilder.Remove(range.Location, range.Length); aStringBuilder.Insert(range.Location, replacementString); string textAfter = aStringBuilder.ToString(); int proposedDecade = (textAfter.ToCharArray() [3] - '0') * 10; int yearDecade = currentYear - (currentYear % 10); if (proposedDecade > yearDecade) { FlashCheckDateLabel(); return(false); } if (textLengthAfter == 5) { if (!cardHelper.IsStartDateValid(textAfter)) { FlashCheckDateLabel(); return(false); } var bStringBuilder = new StringBuilder(textField.Text); bStringBuilder.Remove(range.Location, range.Length); bStringBuilder.Insert(range.Location, replacementString); textField.Text = bStringBuilder.ToString(); DispatchQueue.MainQueue.DispatchAsync(() => { IssueNumberTextField.BecomeFirstResponder(); }); changeText = false; } } char[] placeHolder = "MM/YY".ToCharArray(); for (int iii = 0; iii < textLengthAfter; iii++) { placeHolder [iii] = ' '; } StartDatePlaceHolder.Text = new string (placeHolder); return(changeText); }; IssueNumberTextField.ShouldChangeCharacters = (UITextField textField, NSRange nsRange, string replacementString) => { if (replacementString != "" && !Char.IsDigit(replacementString.ToCharArray() [0])) { return(false); } CSRange range = new CSRange((int)nsRange.Location, (int)nsRange.Length); DispatchQueue.MainQueue.DispatchAsync(() => { UpdateUI(); }); if (range.Length > 1) { return(false); } if (replacementString.Length > 1) { return(false); } if (replacementString.Length == 1 && !char.IsDigit(replacementString.ToCharArray() [0])) { return(false); } if (textField.Text.Length + replacementString.Length - range.Length > 3) { return(false); } if (textField.Text.Length + replacementString.Length == 3 && replacementString != "") { var aStringBuilder = new StringBuilder(textField.Text); aStringBuilder.Remove(range.Location, range.Length); aStringBuilder.Insert(range.Location, replacementString); textField.Text = aStringBuilder.ToString(); DismissKeyboardAction(); return(true); } return(true); }; }
public override void DismissKeyboardAction() { IssueNumberTextField.ResignFirstResponder(); StartDateTextField.ResignFirstResponder(); }