Swift - не может передать пользовательский жест из пользовательского UICollectionViewCell в UITextField внутри него
У меня есть обычай UICollectionViewCell
(давайте назовем это MyCustomCell
) это имеет обычай UITextField
(давайте назовем это MyCustomField
) внутри него пользователи могут добавлять текст. Тем не менее, кажется, что независимо от того, что я делаю, входы крана не получают от MyCustomCell
к своей подвид MyCustomField
, Раньше у меня была такая же договоренность, кроме MyCustomCell
это UITableViewCell
и это сработало по какой-то причине.
Прямо сейчас я должен был сделать обходной путь, когда всякий раз, когда ячейка нажата, ячейка отправляет becomeFirstResponder()
сообщение в текстовое поле. Тем не менее, это не позволяет пользователю нажать на кнопку "Очистить текст" внутри MyCustomField
и не позволяет пользователю перемещать курсор в текстовом поле:
// function inside the MyCustomCell, called by the view controller
// whenever it thinks the user tapped on a cell:
func cellTapped()
{
// this is an instance of MyCustomField:
input.becomeFirstResponder();
}
Есть ли способ "передать" фактический жест MyCustomField
(либо из MyCustomCell
или из контроллера вида, который управляет ими обоими)?
Обновление: это то, как выглядит иерархия представления для MyCustomCell (подкласс UICollectionViewCell):
1 ответ
Это может быть полезно для других, у которых есть подобная проблема: я считаю, что @MultiColourPixel является правильным в комментарии выше, что между MyCustomField и MyCustomCell существует скрытое "представление". То, что я сделал, было:
- Резервное копирование файлов.xib и.swift для кода
MyCustomCell
а такжеMyCustomField
, - Удалите файлы.xib и.swift.
- Из меню XCode заново создайте файл.swift и убедитесь, что вы также проверили "создать XIB" при создании файла / класса.swift, который является подклассом
UICollectionViewCell
, - Скопируйте и вставьте старое содержимое xib / swift в новый xib / swift.
- Это должно работать, без необходимости явно отправлять
becomeFirstResponder()
кMyCustomField
,