如何以编程方式设置特定UITextField的回车键?

45

我简直无法相信这个问题还没有被问过,但我一直找不到,所以这是我的假设。

我使用Interface Builder创建了自定义的 UITableViewCell 子类。每个子类都包含一个UILabel和一个UITextField,用于我们的登录界面。

在第一个UITextField上,我想让键盘键显示 "下一步"。然而,在第二个UITextField上,我想让它显示 "完成"。

我如何通过编程方式更改键盘上的Return Key值?我不能使用 Interface Builder ,因为那样会使两个键都显示为Done

谢谢!


1
你可以使用Interface Builder为每个UITextField设置两种不同的返回键类型。 - ZhangChn
抱歉没有完全阅读问题....我现在更新了答案.. - Legolas
4个回答

87

对于第一个UITextField,阅读此教程以学习如何在键盘上创建一个按钮。您可以从中了解逻辑并使用Next按钮代替Done按钮。

   //if you just want to make it appear NEXT//

    textField.returnKeyType = UIReturnKeyNext;

对于第二个UITextField,使用...

   // for DONE //

    textField.returnKeyType = UIReturnKeyDone;

您通常可以创建和重命名按钮为任何名称,并确保在按下该按钮时提供正确的IBAction事件。如果您创建自己的自定义按钮,请参考上面的教程,了解如何将其放置在正确的坐标和位置。


这真是让人恼火。请向我解释为什么“returnKeyType”在苹果的文档中找不到? - TigerTrussell
这是苹果的文档,链接如下:http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextField_Class/Reference/UITextField.html - TigerTrussell
而且,非常感谢。我花了很长时间才找到这个。 - TigerTrussell
3
这段内容需要翻译为:它是由UITextField采用的协议之一(UITextInputTraits)。 - Deepak Danduprolu
没错,就是这个。您还可以查看此示例,了解使用UITextField的各种方法以及您可以自定义它的方式:http://iphonedevelopertips.com/user-interface/adjust-textfield-hidden-by-keyboard.html - Legolas

5

在将返回键类型设置为立即更新键盘返回键外观后,您需要调用[textView reloadInputViews];来更新。

请按照以下步骤执行:

textView.returnKeyType = UIReturnKeyDone; [textView reloadInputViews];


2
令人难以置信,其他答案中竟然没有提到 reloadInputViews - carmine

2

也可以通过在.xib文件中设置属性来完成。您只需在属性检查器下将UITextFieldReturn Key属性设置为Next


1
在Swift 4中,以下代码可用于将键盘上的“返回按钮”替换为“搜索按钮”或“完成按钮”:
yourTextField.returnKeyType = UIReturnKeyType.search
yourTextField.returnKeyType = UIReturnKeyType.done

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接