在 iPhone 应用程序的键盘上添加“完成”和“换行”按钮
Posted
技术标签:
【中文标题】在 iPhone 应用程序的键盘上添加“完成”和“换行”按钮【英文标题】:Add 'Done' and 'New line' buttons on keyboard in iPhone application 【发布时间】:2011-02-02 10:53:49 【问题描述】:我创建了一个基于窗口的应用程序,其中UITabbarController
为RootViewController
。
在其中一个选项卡中,我提供了UITextField
和UITextView
。
我想在键盘本身上提供两个按钮:
如果有人知道如何做,请发布您的答案。
【问题讨论】:
您可以在工具栏上添加这两个按钮,然后通过动画将其放在键盘顶部。 键盘对于 textView 和 textfield 的新行具有返回键,您也不需要任何新行。 【参考方案1】:对于 UITextField,您可以通过设置以下内容将返回键更改为完成键:
targetTextField.returnKeyType = UIReturnKeyDone;
但是,如果不向键盘自定义添加视图,您将无法同时拥有 Enter 和 Done 键。
此外,要控制键盘的完成行为,您必须实现 UITextFieldDelegate 方法:
targetTextField.delegate = self;
- (BOOL)textFieldShouldReturn:(UITextField *)textField
return YES; //dismisses the keyboard
我知道您可以为 UITextView 设置 returnKeyType,但我不确定您是否可以操纵返回键行为。
【讨论】:
【参考方案2】:您有一个关于如何将子视图添加到 iPhone 键盘的教程:
http://www.iphonedevsdk.com/forum/iphone-sdk-tutorials/7350-adding-subviews-custimize-keyboard.html
希望这会有所帮助, 文森特
【讨论】:
【参考方案3】:由于某种原因返回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
【讨论】:
以上是关于在 iPhone 应用程序的键盘上添加“完成”和“换行”按钮的主要内容,如果未能解决你的问题,请参考以下文章