我在swift中使用uitextview,键盘消失,我使用uitextview委托方法
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
if(text == "\n") {
textView.resignFirstResponder()
return false
}
return true
}
但我不想使用此委托方法返回键盘bcz我想使用返回键进行下一行。 还有其他方法可以消失键盘吗? 由于某种原因,我不会使用触摸事件。
答案 0 :(得分:2)
除非使用自定义键盘,否则键盘上不能同时具有返回和关闭键。可以通过设置inputView
property
更好的标准做法是在键盘顶部设置一个按钮,让用户可以选择隐藏它。这可以通过为inputAccessoryView
分配UITextView
来完成。更多here
答案 1 :(得分:1)
尝试使用ToolBar
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()
}
答案 2 :(得分:1)
试试这个
self.view!.endEditing(true)
答案 3 :(得分:0)
您可以在键盘上添加完成的工具栏。完成该操作后,您可以重新设置键盘
答案 4 :(得分:0)
使用适用于Swift和Objective C的IQKeboardManager类。
对于下面写的swift代码可以帮到你。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
// Override point for customization after application launch.
IQKeyboardManager.sharedManager().enable = true
}
以下链接可以帮助您。