2015-06-16 61 views
1

是否有按下UIButton时调用textFieldDidEndEditing UITextField?当按下UIButton时,调用textFieldDidEndEditing UITextField

当前进程中textFieldDidEndEditing 功能可以工作的时候用户按下“返回”或“完成”按钮,单击的UIButton。要清楚,如果ABC功能textFieldDidEndEditing要运行,用户必须按“返回”或键盘的“完成”按钮,然后单击的UIButton。

我想要的是我想运行函数在textFieldDidEndEditing可以在用户按下UIButton时工作。

回答

2

在按键处理方法,请致电:

[self.view endEditing:YES]; 

这将迫使键盘消失,无论当前的文本字段具有焦点将辞职第一响应和textFieldDidEndEditing:方法将被调用它。

上面假定按钮处理程序位于视图控制器类中。

既然你正在处理一个自定义单元格和按钮是在自定义单元格,简单地做:

[self endEditing:YES]; 

其中self是自定义单元格。这将退出单元格中的任何文本字段。

+0

伟大辞职文本域,但我在定制TableViewCell我这样如何调用[self.view endEditing:YES]; – ppshein

+0

按钮处理程序方法在自定义单元类中?如果您的自定义单元类具有对文本字段的引用(ivar),则只需在文本字段中调用'resignFirstResponder'即可。我原来的建议假定按钮处理程序在视图控制器中,并且有多个文本字段。 – rmaddy

+0

简单的问题是当我按下UIButton时,如何调用单个(特定)UITextField的“textFieldDidEndEditing”。 [self.view endEditing:YES]和resignFirstResponser不起作用,因为我已经通过添加UIBUtton逐个编程地添加了UITextField。 – ppshein

0

您可以使用文本框UIKeyboardWillHideNotification通知

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
     // register for keyboard dismiss notification 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 
} 
- (void)keyboardWillHide:(NSNotification *)notification 
{ 
    // This function will be called whenever the keyboard hides. So you can implement your textFieldDidEndEditing code here. 
} 

此外,当您的按钮被点击只是

[yourTextField resignFirstResponder]; 
+1

为什么要听键盘通知? OP希望在按下按钮时调用“textFieldDidEndEditing:”。只需简单地辞去文本字段就可以实现这一切。 – rmaddy

+0

是啊,你是对的..简单的使文本框辞职将调用委托 –