Xcode 6.3. Внутри класса, реализующего протокол UITextFieldDelegate, я хотел бы переопределить метод touchhesBegan(), чтобы скрыть клавиатуру. Если я избегаю ошибки компилятора в spec функции, то возникает ошибка с интегратором, пытающаяся прочитать «касание» из набора или NSSet, иначе super.touchesBegan (касается, withEvent: event) выдает ошибку. Одна из этих комбинаций скомпилирована в Xcode 6.2! (Так где документация Swift "Установить" и как получить элемент из одного?)Метод переопределения с касаниями SelectorBegan: withEvent: 'имеет несовместимый тип' (NSSet, UIEvent) ->() '
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
// Hiding the Keyboard when the User Taps the Background
if let touch = touches.anyObject() as? UITouch {
if nameTF.isFirstResponder() && touch.view != nameTF {
nameTF.resignFirstResponder();
}
}
super.touchesBegan(touches , withEvent:event)
}
Try:
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) or
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent)
Ошибка компилятора: Перекрытие метод с селектором 'touchesBegan: withEvent:' имеет несовместимый тип '(NSSet, UIEvent) ->()' и
super.touchesBegan(touches , withEvent:event)
также жалуется
«NSSet» неявно конвертируется в «Set»; вы хотели использовать «как» для явного преобразования?
Try:
override func touchesBegan(touches: Set<AnyObject>, withEvent event: UIEvent)
Ошибка компилятора: Тип 'AnyObject' не соответствует протоколу 'Hashable'
Try:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent)
Compiler ошибка при
if let touch = touches.anyObject() as? UITouch
'Set' не имеет члена с именем 'anyObject', но функция spec и вызов super() в порядке!
Try:
override func touchesBegan(touches: NSSet<AnyObject>, withEvent event: UIEvent) ->() or
override func touchesBegan(touches: NSSet<NSObject>, withEvent event: UIEvent)
Ошибка компилятора: не может специализироваться необщего типа 'NSSet'
Да! Я тоже прочитаю блог. Спасибо. – SoCor
Спасибо Мартин Р, все, что мне нужно было сделать, это изменить мой NSSet для установки и мой код работает. –
MwcsMac
Привет @Martin Почему 'super.touchesBegan (касается, withEvent: event)' нужен? Я до сих пор не понимаю Swift очень хорошо. –