I have set a custom inputView to my UITextField. I need a way to display the data selected in my custom inputView in the UITextf
When sending input from your custom input view back to the textfield, note that you can (should) use the UIKeyInput protocol methods that UITextField conforms to. Namely:
- (void)deleteBackward;
- (void)insertText:(NSString *)text;
How does the system keyboard get a reference to the UITextfield that is the first responder?
It just asks the system for the first responder; unfortunately, that's a private UIKit method (or was, last I checked). You can find the first responder by recursing through the view hierarchy and asking each view, but that's pretty clumsy.
Instead, you can add a link to the text field on the input view (I'm assuming your input view is a custom UIView subclass):
@property(nonatomic, assign) UITextField* target;
Then use the UITextField delegate methods in your view controller to see when the text field is being focused:
- (void)textFieldDidBeginEditing:(UITextField*)textField
{
if ( [textField.inputView isKindOfClass:[MyInputView class]] )
((MyInputView*)textField.inputView).target = textField;
}
- (void)textFieldDidEndEditing:(UITextField*)textField
{
if ( [textField.inputView isKindOfClass:[MyInputView class]] )
((MyInputView*)textField.inputView).target = nil;
}