2015-07-28 9 views
0

я использую dispatch_after в моем TextFieldIOS Отправка получить последний элемент времени задержки

(в Func SearchBar (SearchBar: UISearchBar, textDidChange SearchText: String))

только огонь мой Println один раз 5 сек.

использования: - Тип "ABCDE" Fastly - Вернитесь "ABCDE" Println назад

Вместо (через 5 секунд) - это - абы - а - ABCD - ABCDE

 let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(5 * Double(NSEC_PER_SEC))) 

    dispatch_after(delayTime, dispatch_get_main_queue()) { 

     println("test: \(searchText)") 
    } 
+0

Вы использовали метод textDidChange который получает слово каждого изменения в текстовом поле. Вы должны написать свой код в методе textfielddidengediting. –

ответ

0

Вы можете ввести новый var timer: NSTimer?

Затем в тексте DidChange функция, которую вы могли бы сделать что-то вроде

if timer == nil { 
    timer = NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: "printTextFieldInput:", userInfo: textField, repeats: false) 
} 

соответствующей функции для печати будет выглядеть следующим образом:

func printTextFieldInput(timer: NSTimer) -> Void { 
    if let textField = timer.userInfo as? UITextField { 
    println(textField.text) 
    } 
    timer.invalidate() 
    self.timer = nil 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^