To hide the blinking caret, you need to override caretRectForPosition of a UITextField and return CGRectZero.
override func caretRect(for position: UITextPosition) -> CGRect {
return CGRect.zero
}
- (CGRect) caretRectForPosition:(UITextPosition*) position{
return CGRectZero;
}