Q&A
swift初学者です。
touchesBeganが呼ばれません。
searchBarのキーボードを画面のほかスペースをタッチすることでキーボードを閉じるようにしたいです。
回答よろしくお願いします。
swift
1import UIKit 2 3class nikkiTableViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UISearchBarDelegate{ 4 5 6 private let cellId = "cellId" 7 8 // let cellDateArray = [] 9 var searchBar = UISearchBar() 10 //var textField = UITextField() 11 var addBarButtonItem:UIBarButtonItem! 12 13 @IBOutlet weak var nikkiTableView: UITableView! 14 15 16 override func viewDidLoad() { 17 super.viewDidLoad() 18 19 20 21 setupSearchBar() 22 23 addBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addBarButtonTapped(_:))) 24 addBarButtonItem.tintColor = UIColor.white 25 26 //navigationVarの右側に追加 27 self.navigationItem.rightBarButtonItem = addBarButtonItem 28 29 nikkiTableView.delegate = self 30 nikkiTableView.dataSource = self 31 searchBar.delegate = self 32 //textField.delegate = self 33 34 35 let appearance = UINavigationBarAppearance() 36 appearance.configureWithOpaqueBackground() 37 appearance.backgroundColor = .rgb(red: 173, green: 216, blue: 230) 38 39 //標準の高さ 40 navigationItem.standardAppearance = appearance 41 //ナビゲーションバーが透過する 42 navigationItem.scrollEdgeAppearance = appearance 43 //標準の文字の大きさ 44 navigationItem.compactAppearance = appearance 45 46 } 47 48 49 func setupSearchBar(){ 50 51 if let navigationBarFrame = navigationController?.navigationBar.bounds { 52 let searchBar: UISearchBar = UISearchBar(frame: navigationBarFrame) 53 searchBar.delegate = self 54 searchBar.placeholder = "タイトルで探す" 55 searchBar.tintColor = UIColor.white 56 searchBar.keyboardType = UIKeyboardType.default 57 navigationItem.titleView = searchBar 58 navigationItem.titleView?.frame = searchBar.frame 59// self.searchBar = searchBar 60 } 61 } 62 63 64 //textField以外の部分のタッチ時にキーボード閉じる 65 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 66 67 self.view.endEditing(true) 68 } 69 70 func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { 71 searchBar.resignFirstResponder() 72 } 73 74 75 76 77 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 78 79 return 190 80 81 } 82 83 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 84 85 return 1 86 //self.cellDateArray.count 87 } 88 89 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 90 91 let cell = nikkiTableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) 92 93 return cell 94 //self.cellDateArray.object(at: indexPath.row) as! UITableViewCell 95 } 96 97 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 98 99 let storyboard = UIStoryboard(name: "nikkiTableView", bundle: nil) 100 let textVC = storyboard.instantiateViewController(withIdentifier: 101 "textViewController") 102 103 navigationController?.pushViewController(textVC, animated: true) 104 //タップした後、セルの色が白色に戻る 105 tableView.deselectRow(at: indexPath, animated: true) 106 107 } 108 109 //+ボタンが押されたときのメゾットー>画面遷移からの、cellの追加を書く 110 @objc func addBarButtonTapped(_ sender: UIBarButtonItem) { 111 112 let storyboard = UIStoryboard(name: "nikkiTableView", bundle: nil) 113 let textVC = storyboard.instantiateViewController(withIdentifier: 114 "textViewController") 115 116 navigationController?.pushViewController(textVC, animated: true) 117 118 } 119 120 121 122 123 } 124 125 class nikkiTableViewCell: UITableViewCell { 126 127 128 @IBOutlet weak var cafeImageView: UIImageView! 129 @IBOutlet weak var nameLabel: UILabel! 130 @IBOutlet weak var dateLabel: UILabel! 131 @IBOutlet weak var hyoukaLabel: UILabel! 132 133 134 override func awakeFromNib() { 135 super.awakeFromNib() 136 137 138 } 139 140 override func setSelected(_ selected: Bool, animated: Bool) { 141 super.setSelected(selected, animated: animated) 142 } 143 144 }
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/05/19 13:30
2022/05/20 13:42
2022/05/21 23:15
退会済みユーザー
2022/05/22 00:57
2022/05/22 03:00
退会済みユーザー
2022/05/22 03:50
2022/05/22 04:19
2022/05/22 07:53