当textField改为firstResponder时,不发送任何信号值且文本颜色不正确,我该如何解决?
RAC(self.textField, textColor) = [RACSignal
combineLatest:@[self.textField.rac_textSignal]
reduce:^(NSString *firstName) {
if (firstName.length > 5) {
return [UIColor blueColor];
}else{
return [UIColor redColor];
}
}];
答案 0 :(得分:0)
假设您的意思是显示字段的验证状态,您可以这样做。还有很多其他方法,但这是我通常使用的方式。
- (void)viewDidLoad {
[super viewDidLoad];
// =====================================
// Other Initialisation Code Here
// =====================================
RACSignal *validTextFieldSignal =
[self.textField.rac_textSignal
map:^id(NSString *text) {
return @([self isValidTextField:text]);
}];
RAC(self.textField, textColor) =
[validTextFieldSignal
map:^id(NSNumber *textFieldValid) {
return [textFieldValid boolValue] ? [UIColor blueColor] : [UIColor redColor];
}];
end
- (BOOL)isValidTextField:(NSString *)textField {
return textField.length > 5;
}