2015-06-09 2 views
1

Мой код внутри UIView класса, который содержит UITextField с именем TitleInput:IOS: Уволить клавиатуры в Swift через Трассировка

override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? { 
    // Code to Dismiss the Keyboard when Pressed Outside Text Field 
    if !titleInput.pointInside(point, withEvent: event) { 
     endEditing(true) 
    } 

    // Return Original hitTest Result as Usual 
    return super.hitTest(point, withEvent: event) 
} 

Я испытываю странную ошибку. Когда я впервые запускаю приложение, все работает так, как ожидалось, касаясь вне titleInput, отклоняет клавиатуру. Тем не менее, он тормозит, если я переключусь на другое приложение и вернусь в это приложение. Вернувшись в приложение, нажатие на клавиатуре также отменяет клавиатуру. Сложно напечатать :)

Любая идея, почему это происходит, и почему она ТОЛЬКО начинается после перехода от приложения, а затем возвращается к ней? Кроме того, есть ли лучший способ сделать то же самое.

ответ

0

Я бы рекомендовал это сделать this way вместо того, что вы пытаетесь. При нажатии клавиши ввода/возврата будет просто отключаться клавиатура. Я понимаю, что это в Obj-C, но вызовы метода почти идентичны.

+0

Да, я сделал это. На самом деле я использую ключ возврата для добавления нового элемента. Поэтому, если нажата функция возврата, функция сохранения активируется. Я хотел бы добавить tap в другое место, чтобы отменить действие. – Bogdan

0

я обычно делаю именно это

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 
    view.endEditing(true) 
    super.touchesBegan(touches, withEvent: event) 
} 
Смежные вопросы