将完成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中提取