Cocoa touch 从键盘访问视图按钮退出FirstResponder
在我的视图中,我有3个UITextField,我为每个UITextField创建了键盘的accessoryView,如所述 在我的附件视图中,我添加了一个按钮,该按钮必须调用函数“CloseKeyboard”。在这个函数中,我找不到截取UITextField的方法,在这个UITextField中,键盘正在写入内容,我需要调用resignfristeresponder 为了在一个字段上添加accessoryView,我编写了这段代码Cocoa touch 从键盘访问视图按钮退出FirstResponder,cocoa-touch,ios,Cocoa Touch,Ios,在我的视图中,我有3个UITextField,我为每个UITextField创建了键盘的accessoryView,如所述 在我的附件视图中,我添加了一个按钮,该按钮必须调用函数“CloseKeyboard”。在这个函数中,我找不到截取UITextField的方法,在这个UITextField中,键盘正在写入内容,我需要调用resignfristeresponder 为了在一个字段上添加accessoryView,我编写了这段代码 if (field1.inputAccessoryView ==
if (field1.inputAccessoryView == nil) {
field1.inputAccessoryView = [self createInputAccessoryView];
}
if (field2.inputAccessoryView == nil) {
field2.inputAccessoryView = [self createInputAccessoryView];
}
if (field3.inputAccessoryView == nil) {
field3.inputAccessoryView = [self createInputAccessoryView];
}
这里是createInputAccessory函数:
-(UIView *)createInputAccessoryView {
CGRect accessFrame = CGRectMake(0.0, 0.0, 20.0, 55.0);
UIView *inputAccessoryView = [[UIView alloc] initWithFrame:accessFrame];
UIButton *compButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
compButton.frame = CGRectMake(250.0, 10.0, 60.0, 40.0);
[compButton setTitle: @"Close" forState:UIControlStateNormal];
[compButton addTarget:self action:@selector(CloseKeyboard:)
forControlEvents:UIControlEventTouchUpInside];
[inputAccessoryView addSubview:compButton];
return inputAccessoryView; }
如何实现“CloseKeyboard”功能,使FirstResponder从活动UITextField中退出
谢谢你的帮助 作为第一个解决方案,我尝试使用这个实现,每次field1成为第一响应者时,我都会强制它,然后我就辞职了
-(void) closeFunction:(id)sender{
[field1 becomeFirstResponder];
[field1 resignFirstResponder];
}
但这是一个解决办法。。。不是解决方案:P
从iOS 2.0及更高版本开始,有一种简单的方法可以关闭键盘,而无需跟踪当前活动的控件,或遍历所有可用控件,或使用
UITextFieldDelegate
[self.view endEditing:YES]
从文档中:
编辑:
使视图(或其中一个嵌入的文本字段)
退出第一响应者状态。-(
BOOL
)编辑:(BOOL
)强制
参数力
指定
YES
强制第一响应者辞职,无论其是否愿意辞职
所以返回值
YES
如果视图退出第一响应者状态,或者NO
如果视图没有退出第一响应者状态。讨论
此方法查看当前视图及其子视图 当前为第一响应者的文本字段的层次结构。如果 它找到一个,它要求文本字段辞去第一响应者的职务。如果 力参数设置为
YES
,甚至从未询问文本字段;
它被迫辞职