Move the adding of the tapOffKeyboardGesture recognizer to viewDidLoad, initially disabled, and instead have the textShouldBeginEditing delegate enable it.  This avoids potentially adding the recognizer twice. props @aerych