0
UICollectionView가 포함 된 UITableView가 있습니다. 첫 번째 섹션에는 UITextField가있는 사용자 정의 셀이 있고 두 번째 섹션에는 UICollectionView가 있습니다. 사용자가 내가 알아 낸 나는이 때문에 그것의UITableView의 UICollectionView가 view.addGestureRecognizer()로 인해 탭을 감지하지 못합니다.
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
view.addGestureRecognizer(tap)
func dismissKeyboard(sender: UIGestureRecognizer) {
view.endEditing(true)
}
을 사용하고의 UITextField의 외부 탭 때
내 UICollectionView는 해당 항목에 도청 장치를 인식하지 못하는 경우, 키보드를 숨기려면. 내가 제거하면 view.addGestureRecognizer (탭) 다 잘 작동하지만 키보드는이 경우 숨기지 않습니다.func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder() //if desired
return true
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch indexPath.section {
case 0:
let cell = tableView.dequeueReusableCell(withIdentifier: "ProfileTableViewCell", for: indexPath) as! ProfileTableViewCell
cell.value.delegate = self // value is my textField
return cell
case 1:
let cell = tableView.dequeueReusableCell(withIdentifier: "WallpaperTableViewCell", for: indexPath) as! WallpaperTableViewCell
cell.setCollectionViewDataSourceDelegate(dataSourceDelegate: self, index: (indexPath as NSIndexPath).row)
return cell
default:
let cell = UITableViewCell()
return cell
}
}
어떻게이 문제를 해결하고 UICollectionView에서 키보드 및 탭 인식을 함께 사용할 수 있습니까? 감사 jQuery과에 내가 필립 밀스
에 https://github.com/DahanHu/DHCollectionTableView
UPD
감사를이 예제를 사용했습니다 UICollectionView를 포함하려면
는 대답은 꽤 쉬운
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
및
했다func keyboardWillShow(notification: NSNotification) {
view.addGestureRecognizer(tap)
}
func keyboardWillHide(notification: NSNotification) {
view.removeGestureRecognizer(tap)
}