Cocoa touch 从键盘访问视图按钮退出FirstResponder

Cocoa touch 从键盘访问视图按钮退出FirstResponder,cocoa-touch,ios,Cocoa Touch,Ios,在我的视图中,我有3个UITextField,我为每个UITextField创建了键盘的accessoryView,如所述 在我的附件视图中,我添加了一个按钮,该按钮必须调用函数“CloseKeyboard”。在这个函数中,我找不到截取UITextField的方法,在这个UITextField中,键盘正在写入内容,我需要调用resignfristeresponder 为了在一个字段上添加accessoryView,我编写了这段代码 if (field1.inputAccessoryView ==

在我的视图中,我有3个UITextField,我为每个UITextField创建了键盘的accessoryView,如所述

在我的附件视图中,我添加了一个按钮,该按钮必须调用函数“CloseKeyboard”。在这个函数中,我找不到截取UITextField的方法,在这个UITextField中,键盘正在写入内容,我需要调用resignfristeresponder

为了在一个字段上添加accessoryView,我编写了这段代码

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
,甚至从未询问文本字段; 它被迫辞职