Skip to content

Instantly share code, notes, and snippets.

View fauc3t's full-sized avatar

Nicholas Horn fauc3t

View GitHub Profile
@fauc3t
fauc3t / ViewController.cs
Created August 23, 2018 12:13
final-tests
using System;
using System.Threading.Tasks;
using UIKit;
namespace TextFieldValidation_Medium
{
public partial class ViewController : UIViewController
{
private ValidationTextField _validationField;
private async void EditingEnded(object sender, EventArgs args)
{
await Validate();
}
public async Task<ValidationState> Validate()
{
var trigger = await RunTriggers();
Update(trigger.State, trigger.Message); // NEW
return trigger.State;
}
...
private void Update(ValidationState state, string message)
@fauc3t
fauc3t / ValidationTextField.cs
Created August 23, 2018 12:09
validate-initial
public async Task<ValidationState> Validate()
{
var trigger = await RunTriggers();
return trigger.State;
}
@fauc3t
fauc3t / ValidationTextField.cs
Created August 23, 2018 12:08
run-triggers
private async Task<Trigger> RunTriggers()
{
// Note that the text is pulled outside of the new tasks
var text = _textField.TextField.Text;
// neutral triggers first
foreach(var trigger in _neutralTriggers)
{
if(await Task.Run(() => trigger.TriggerFunction(text)))
{
@fauc3t
fauc3t / ValidationTextField.cs
Last active August 23, 2018 12:06
triggers
public class ValidationTextField
{
... // Private fields
private List<Trigger> _neutralTriggers = new List<Trigger>();
private List<Trigger> _errorTriggers = new List<Trigger>();
... //Public properties
... // Constructor
@fauc3t
fauc3t / ValidationTextField.cs
Created August 23, 2018 12:01
text-field-editing
public CGColor EditingColor { get; set; }
...
public ValidationTextField(BorderedTextField textField)
{
... // Initialize state colors
EditingColor = _textField.BorderColor;
_textField.TextField.EditingDidBegin += EditingBegan;
@fauc3t
fauc3t / ValidationTextField.cs
Last active August 23, 2018 11:59
vtf-error-label
public class ValidationTextField
{
private BorderedTextField _textField;
private UILabel _errorLabel; // NEW
private CGColor _neutralStateColor;
... // State Color Properties
// NEW
public UIFont ErrorFont
@fauc3t
fauc3t / ValidationTextField.cs
Created August 23, 2018 11:56
validation-text-fields-initial
using CoreGraphics;
namespace TextFieldValidation_Medium
{
public class ValidationTextField
{
private BorderedTextField _textField;
private ValidationState _state = ValidationState.Neutral;
public CGColor NeutralStateColor { get; set; }
@fauc3t
fauc3t / ViewController.cs
Created August 23, 2018 11:53
test-replace-2
var borderedField = new BorderedTextField(NameTextField, NameTextField.TextColor.CGColor, BorderDirection.Bottom, 4);