输入四个字符后能快速自动隐藏键盘吗?我其实有一个隐藏键盘的代码,但用户必须点击屏幕上的任何位置。这里的代码:快速自动隐藏键盘
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
在此先感谢!
输入四个字符后能快速自动隐藏键盘吗?我其实有一个隐藏键盘的代码,但用户必须点击屏幕上的任何位置。这里的代码:快速自动隐藏键盘
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
在此先感谢!
您应该使用文本框代表shouldChangeCharactersInRange
类似,
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (textField.text.length == 4) {
[textField resignFirstResponder];
}
return YES;
}
在斯威夫特,
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if textField.text?.characters.count == 4 {
textField.resignFirstResponder()
}
return true
}
希望这将有助于:)
这为我工作:
// Outlet to textfield, editing changed
@IBAction func textFieldEditingChanged(sender: UITextField) {
if sender.text?.characters.count == 4 {
view.endEditing(true)
}
// Optional if you don't want the user to paste in more than 4 characters
else if sender.text?.characters.count > 4 {
sender.text = nil
}
}
我也推荐你设置
textField.clearsOnBeginEditing = true
所以textField在用户再次点击它时被清除。
如果我正确地得到了你的问题,考虑下面的示例代码:
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var txtF: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
txtF.delegate = self
txtF.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)
}
func textFieldDidChange(textField: UITextField) {
if textField == txtF {
if textField.text?.characters.count == 4 {
self.txtF.resignFirstResponder()
}
}
}
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if textField == txtF {
if textField.text?.characters.count > 3 {
self.txtF.resignFirstResponder()
return false
} else {
return true
}
} else {
return true
}
}
}
有了上面的代码键盘时,文本字段有4个字符将隐藏后,如果用户再次文本框键盘上点击会弹出是用户不能够输入任何文本到textField和键盘将再次隐藏。
结果将是:
希望这会有所帮助。
这里是隐藏键盘或数字键盘最简单的方法。 首先你需要一个按钮,你需要使它的screen.Send它的大小到现场的背面,其连接到IBAction.Then你的代码应该是这样的:
@IBAction func HideKeyboard(sender: AnyObject) {
YourKeyboardHere.resignFirstResponder()
}
这应该适用于所有类型的键盘。
请参阅http://stackoverflow.com/questions/28394933/how-do-i-check-when-a-uitextfield-changes让方法检查当前长度。如果尺寸合适,请关闭键盘。 – rmaddy
可能重复[如何隐藏快捷键按下回车键?](http://stackoverflow.com/questions/24180954/how-to-hide-keyboard-in-swift-on-pressing-return-key) –
@AbhinandanPratap不,这不是重复的,因为OP在按下返回键时不会询问如何关闭键盘。 – rmaddy