To hide the cursor, simply subclass UITextField and override -caretRectForPosition: which is implemented by UITextField to conform to the UITextInput protocol:
- (CGRect)caretRectForPosition:(UITextPosition *)position { return CGRectZero;
As for changing the color or cursor, I think this is not possible without access to the private API.
EDIT: according to S. Soffes comment, color change is possible through the tintColor property, obviously.
source share