You should do this:
myTextField.inputView = UIView.new; //Empty UIView
Setting it to nil
just means the default keyboard is used.
To get rid of the caret, subclass the UITextField and override caretRectForPosition
:
- (CGRect) caretRectForPosition:(UITextPosition*)position
{
return CGRectZero;
}