在iPhone应用程序的键盘上添加“完成”和“新行”按钮

时间:2011-02-02 10:53:50

标签: iphone objective-c xcode programmatically-created

我创建了一个基于窗口的应用程序,UITabbarControllerRootViewController。 在其中一个标签中,我提供了UITextFieldUITextView。 我想在键盘上提供两个按钮:

  • 完成 - 这将隐藏键盘。
  • 输入 - 换新行。

如果有人知道怎么做,请发表你的回答。

3 个答案:

答案 0 :(得分:4)

对于UITextField,您可以通过设置以下内容将返回键更改为完成键:

targetTextField.returnKeyType = UIReturnKeyDone;

但是,如果没有自定义添加键盘视图,您将无法同时拥有Enter和Done键。

此外,要控制键盘的完成行为,您必须实现UITextFieldDelegate方法:

targetTextField.delegate = self;
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
     return YES;  //dismisses the keyboard
}

我知道您可以为UITextView设置returnKeyType,但我不确定您是否可以操作返回键行为。

答案 1 :(得分:1)

您有一个关于如何在iPhone键盘上添加子视图的教程:

http://www.iphonedevsdk.com/forum/iphone-sdk-tutorials/7350-adding-subviews-custimize-keyboard.html

希望这有帮助, 文森特

答案 2 :(得分:1)

由于某种原因返回YES;没有自己的工作。这对我有用:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {

    if (textField.returnKeyType == UIReturnKeyNext) {
        NSInteger nextTag = textField.tag + 1;
        // Try to find next responder
        UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
        if (nextResponder) {
            // Found next responder, so set it.
            [nextResponder becomeFirstResponder];
        }
    }

    if (textField.returnKeyType == UIReturnKeyDone) {
        [textField resignFirstResponder];
    }
    return YES;  //dismisses the keyboard
}