2016-11-28 1 views
0

Я пытаюсь проверить UITextField, если он имеет более 3 символов, он должен возвращать true else return false. Я попытался использовать приведенный ниже код, но он не работает. Что я делаю не так?Подтвердить текстовое поле с помощью Reactive Cocoa swift

let validUserNameSignal = self.nameTextField.reactive.trigger(for: .valueChanged).observeValues { 
     value in 


    }.map { (value) in 

     String(describing: value).characters.count > 3 ? true:false 

    } 
    print("user name valid result is \(validUserNameSignal)") 

ответ

2

Вот как должен выглядеть код.

let validUserNameSignal = 
     self.nameTextField 
      .reactive 
      .continuousTextValues 
      .skipNil() 
      .map { $0.characters.count > 3 } 

validUserNameSignal.observeValues { value in 
    print("user name valid result is \(value)") 
} 
+0

работает отлично. Когда я объединяю 2 сигнала, он возвращает кортеж. 'Пусть validUserNameSignal = self.nameTextField .reactive .continuousTextValues ​​ .skipNil() .map ({$ 0.characters.count> 3} ) пусть pwdPasswordFieldSignal = self.pwdtextField.reactive.continuousTextValues.skipNil(). карта ({$ 0.characters.count> 3}) пусть formValidation = validUserNameSignal.combineLatest (с: pwdPasswordFieldSignal)? formValidation.observeValues ​​{значение в печати (\ (значение) ") }' это нормально –

+0

Да, это что происходит, когда вы объединяете два сигнала. –

+0

Итак, я должен проверить все значения кортежа, чтобы определить результат? Или есть другой способ? –

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