在uitextview中消失键盘

我在swift中使用uitextview和键盘消失我正在使用uitextview委托方法

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { if(text == "\n") { textView.resignFirstResponder() return false } return true } 

但我不想用这个委托方法返回键盘bcz我想要使用返回键为下一行。 有没有其他的方法来消除键盘? 由于某种原因,我不使用触摸事件。

除非您使用自定义键盘,否则键盘上不能有返回键和退出键。 可以通过设置inputView 属性来添加自定义键盘

更好的标准做法是在键盘顶部有一个button,让用户可以隐藏它。 这可以通过为UITextView分配一个inputAccessoryView来完成。 更多在这里

尝试使用工具栏

 override func viewDidAppear(animated: Bool) { ... var toolBar = UIToolbar() toolBar.barStyle = UIBarStyle.Default toolBar.translucent = true toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1) var nextButton = UIBarButtonItem(title: "Next", style: UIBarButtonItemStyle.Done, target: self, action: "nextTextfield") var previousButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "previousTextfield") var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil) toolBar.setItems([previousButton, spaceButton, nextButton], animated: false) toolBar.userInteractionEnabled = true toolBar.sizeToFit() textField.delegate = self textField.inputAccessoryView = toolBar } func nextTextfield() { nextTextField.resignFirstResponder() } func previousTextfield() { //if exist previous //previousTextField.resignFirstResponder() } 

尝试这个

 self.view!.endEditing(true) 

你可以在你的键盘上添加完成的工具栏。完成这个动作后,你可以退出你的键盘

使用可用于Swift和Objective C的IQKeboardManager类

对于下面写的快速代码将帮助你。

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. IQKeyboardManager.sharedManager().enable = true } 

下面给出的链接将帮助你。

https://github.com/hackiftekhar/IQKeyboardManager