Теперь в viewController я установил делегат текстового поля в класс TextFieldDelegateViewController, который я определил для обработки методов делегата текстового поля. Экземпляр viewController проходит через замыкание как слабый.
@IBOutlet weak var numberOfCreatures: UITextField!
{
didSet{
if let selectedIndex = delegate?.getSelectedIndexPath(){
numberOfCreatures.delegate = TextFieldDelegateViewController(){
weak var edit = self
return edit!
}
}
}
}
Вот мой TextFieldDelegateViewController класс
class TextFieldDelegateViewController: NSObject, UITextFieldDelegate {
weak var editDetailsViewController:EditDetailsViewController?
init(closure: () -> EditDetailsViewController?) {
self.editDetailsViewController = closure()
print("Init... \(self.editDetailsViewController)")
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
print("Writing.....")
if textField.tag == 1{
return handleEditingDescriptionField(with: string, shouldChangeCharactersIn: range)
}else{
return handleEmptyNumberOfCreaturesTextField(with: string)
}
}
}
Когда я устанавливаю делегата в качестве собственного контроллера представления, методы делегата работают нормально, но в случае, если я помещаю его в другой класс, они даже не вызываются. Я пытаюсь установить делегат для другого класса, так как у меня есть много методов делегата в контроллере представления, и я хочу разделить их. Благодарим Вас за помощь.