当用户触摸键盘时,有什么方法可以解除此键盘?我尝试了触摸开始方法,但这不起作用。 textfieldshouldreturn方法可以正常工作。我无法想到其他任何方法。有人可以帮助我在这里我真的很感激任何帮助。感谢
import UIKit
var courseCatalog : [String] = Array<String>()
class HomeViewController: UIViewController, UITextFieldDelegate , UITableViewDelegate{
@IBOutlet var searchTextField: UITextField!
override func viewDidLoad() {
courseCatalog = ["Accounting", "Administration" , "American Studies" , "Anthropology" , "Arabic" , "Art" , "Aerospace Studies" , "American Sign Language" , "Biology" , "Child Development" , "Chemistry" , "Chinese" , "Criminal Justice", "Communication Studies" , "Computer Science", "Computer Engineering"]
super.viewDidLoad()
println(PFUser.currentUser())
println("Home Tab View Controller")
searchTextField.delegate = self
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return courseCatalog.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
cell.textLabel?.text = courseCatalog[indexPath.row]
return cell
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
self.searchTextField.resignFirstResponder()
}
func textFieldShouldReturn(textField: UITextField!) -> Bool {
searchTextField.resignFirstResponder()
return true
}
}
答案 0 :(得分:3)
您应该在表格视图中添加一个点击手势识别器,以便在触发时关闭键盘:
//Somewhere in setup
UITapGestureRecognizer *viewTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(closeKeyboard)];
viewTap.cancelsTouchesInView = FALSE;
[myTableView addGestureRecognizer:viewTap];
//Somewhere else in your class
-(void)closeKeyboard {
[self.view endEditing:TRUE];
}
答案 1 :(得分:2)
如果您的背景是UIView,您可以在身份检查器中将其更改为UIControl,并将其发送到撤消第一个响应者的操作。
由于你的背景是一个UITableView,你应该在你的navigationBar中添加一个rightBarButtonItem,例如&#39;取消&#39;或者&#39;完成&#39;并将其发送给一个辞职第一响应者的方法*。
*您的第一响应者是用户输入的字段。
[textField resignFirstResponder];
夫特:
textField.resignFirstResponder();
答案 2 :(得分:0)
您可以尝试以下代码:
func textFieldShouldReturn(textField: UITextField) -> Bool{
textField.resignFirstResponder()
return true
}
这将在&#39;返回&#39;时关闭键盘。键盘上按下按钮。
希望这可以帮到你。