将完成button添加到键盘的顶部

我正在制作一个具有UITextView的通用应用程序。 当应用程序在iPad上运行时,右下angular有一个button,使我可以closures键盘。 iPhone版本没有这样的button。 我已经看到在一些iPhone应用程序的键盘上有一个完成选项的酒吧。 有没有一种简单的方法来添加一个iPad风格解雇键盘button到iPhone应用程序以及。 如果没有,将完成的样式栏添加到键盘顶部的最佳方法是什么? 提前致谢。

请试试这个代码

//set up a placeholder variable for the textfield user typing UITextView *currentTextView; -(void)addDoneToolBarToKeyboard:(UITextView *)textView { UIToolbar* doneToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)]; doneToolbar.barStyle = UIBarStyleBlackTranslucent; doneToolbar.items = [NSArray arrayWithObjects: [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonClickedDismissKeyboard)], nil]; [doneToolbar sizeToFit]; textView.inputAccessoryView = doneToolbar; } //remember to set your text view delegate //but if you only have 1 text view in your view controller //you can simply change currentTextField to the name of your text view //and ignore this textViewDidBeginEditing delegate method - (void)textViewDidBeginEditing:(UITextView *)textView { currentTextView = textView; } -(void)doneButtonClickedDismissKeyboard { [currentTextView resignFirstResponder]; } 

并在您的视图添加这个负载

  [self addDoneToolBarToKeyboard:self.textView]; 

希望有所帮助

同样的答案swift3

 func addDoneToolBarToKeyboard(textView:UITextView) { let doneToolbar : UIToolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 50)) doneToolbar.barStyle = UIBarStyle.default let flexibelSpaceItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil) let hideKeyboardItem = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.done, target: self, action: #selector(self.dismissKeyboard)) doneToolbar.items = [flexibelSpaceItem, hideKeyboardItem!] doneToolbar.sizeToFit() textView.inputAccessoryView = doneToolbar } 

和解雇function将是:

 func dismissKeyboard() { self.view.endEditing(true) } 

您可以随时在一行代码中执行此操作:

 [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; 

这将响应者链发送resignFirstResponder 。 当前的文本视图将是第一响应者,因此它将得到该消息并辞去第一响应者。

我知道这是一个为时已晚的答案,但在iOS 8我不会隐藏键盘为我的文本视图与之前的答案。

只是FYI我只是补充这一点。

 // Para esconder el teclado al oprimir el fondo de la pantalla - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self.answerTextView endEditing:YES]; } 

从applady中提取