我想根据UIprogressView
中输入的文字提升UITextfield
状态。
如果我输入3个字母,则应为25%
,如果是5个字母,则应为50%
,依此类推
答案 0 :(得分:1)
最简单的解决方案是使用textFieldDidChangeMethod
由于UITextFieldDelegate
没有,您可以使用以下方法轻松添加UITextField
(或任何子类化textField)的行为:
[yourTextField addTarget:self
action:@selector(textFieldDidChange)
forControlEvents:UIControlEventEditingChanged];
然后在目标方法中:
- (void) textFieldDidChange
{
float txtProgress = yourTextField.text.length / 10.0;
[yourProgressView setProgress:txtProgress animated:YES];
}
编辑:您还可以使用UITextFieldTextDidChangeNotification
作为controlEvent
两者似乎都很好。
答案 1 :(得分:0)
处理TextField Delegate方法。每次触发此方法时计算文本字段长度。根据长度,您应用逻辑来更新UIProgressView。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
NSLog(@"textFieldShouldBeginEditing");
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField{
NSLog(@"textFieldDidBeginEditing");
}
答案 2 :(得分:-1)
您必须实现UITextField
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
int lenghtOfText = [textField.text length];
if (lenghtOfText == 3)
{
// progress 25%
}
else if (lenghtOfText == 5)
{
// progress 50%
}
return YES;
}