-(BOOL)textInputShouldBeginEditing;// Return `NO` to disallow editing.
-(void)textInputDidBeginEditing;
-(BOOL)textInputShouldEndEditing;// Return `YES` to allow editing to stop and to resign first responder status. `NO` to disallow the editing session to end.
-(void)textInputDidEndEditing;// May be called if forced even if `textInputShouldEndEditing` returns `NO` (e.g. view removed from window) or `[textInput endEditing:YES]` called.