我已经inputView
为我的UITextField
. 我需要一种方法来显示在我的自定义inputView
中选择的数据UITextfield
。我想以与系统键盘相同的方式实现这一点。
有谁知道这是怎么做到的?系统键盘如何获得UITextfield
对第一响应者的引用?
我已经inputView
为我的UITextField
. 我需要一种方法来显示在我的自定义inputView
中选择的数据UITextfield
。我想以与系统键盘相同的方式实现这一点。
有谁知道这是怎么做到的?系统键盘如何获得UITextfield
对第一响应者的引用?
在将自定义输入视图中的输入发送回文本字段时,请注意您可以(应该)使用符合的UIKeyInput
协议方法UITextField
。即:
- (void)deleteBackward;
- (void)insertText:(NSString *)text;
系统键盘如何获得对作为第一响应者的 UITextfield 的引用?
它只是向系统询问第一响应者;不幸的是,这是一个私有的 UIKit 方法(或者是,上次我检查过)。您可以通过遍历视图层次结构并询问每个视图来找到第一响应者,但这非常笨拙。
相反,您可以在输入视图上添加指向文本字段的链接(我假设您的输入视图是自定义 UIView 子类):
@property(nonatomic, assign) UITextField* target;
然后使用视图控制器中的 UITextField 委托方法来查看文本字段何时被聚焦:
- (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;
}