2016-06-18 3 views
3

Я использовал это в прошлом.Xcode 8 - Отключите клавиатуру, когда пользователь нажимает на фон.

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)  
{ 
    self.view.endEditing(true) 
} 

Но теперь в Xcode 8 беты я получаю эту ошибку:

Декларации touchBegan(touches:withEvent) имеют разные имена аргументов от любого потенциального переопределения.

Любые мысли?

+0

Какой версии прошивки вы строите для? – Droppy

+0

'touchBegan' или' touchhesBegan'? –

ответ

7

Это работает для меня:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    self.view.endEditing(true) 
} 

Обратите внимание на очень тонкие Swift 3 обновления в параметрах функции. На страницах 20 и 21 The Swift Programming Language (Swift 3), они объясняют, что:

“By default, functions use their parameter names as labels for their arguments. Write a custom argument label before the parameter name, or write _ to use no argument label.”

:)

+0

Спасибо, что я пытался найти эту книгу уже более месяца. Раньше он никогда не появлялся в моих ibooks. Эта ссылка, которую вы опубликовали, является спасателем жизни для меня. Смогли ли вы найти iPad-игровые площадки, о которых они говорили? – Jevon718

+0

@ Jevon718 Тим Кук упомянул в Keynote, что он будет доступен в предварительном просмотре Developer. Вы обновили свой iPad до бета-версии iOS 10? BTW, не забудьте отметить мой ответ как правильный, если это поможет! :) – Lucas