如何更改键盘完成按钮的行为?

时间:2012-01-27 18:52:50

标签: iphone objective-c ios uitextfield

好吧,所以我的目标是当在UITextField中引入某些内容后点击键盘完成按钮时,它应该触发我的一个动作但不会解除键盘。

现在,我通过“退出时已结束”事件将UITextField与我的操作相关联,每次键入完成后点按“完成”按钮,键盘就会消失。

如果您需要进一步澄清,请与我们联系。

4 个答案:

答案 0 :(得分:10)

尝试在代码中设置textField.delegate = self,并符合UITextFieldDelegate协议。然后实现这个方法:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    // Do something
}

答案 1 :(得分:0)

您必须使用UITextField的委托方法。 (将TextField的委托设置为在Interface Builder或源代码中更正viewController)

然后,转到textField的viewcontroller的.h文件:

@interface correctViewController(type yours) :UIViewController <UITextFieldDelegate>
//now correctViewController "understands" our textfield.

转到correctViewController.m文件:

//Create delegate method of textField
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
    [textField resignFirstResponder]; //to hide keyboard
    return NO;
}

看起来像这样。

答案 2 :(得分:0)

查看UITextFieldDelegate协议参考: http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html

您可以使用此方法来控制键盘的行为:

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
    return NO;
}

答案 3 :(得分:0)

在Swift中它将是:

//MARK: UITextFieldDelegate

func textFieldShouldReturn(textField: UITextField) -> Bool
{
    textField.resignFirstResponder()

    return true
}