2012-09-21 3 views
0
if (![value integerValue]) { 
     textField.text = [[NSString alloc] initWithFormat:@"%d", *x]; 
     [slider setValue:(float)*x]; 
    } 
    if ([value integerValue]>100) { 
     textField.text = [[NSString alloc] initWithFormat:@"255"]; 
     [slider setValue:100.0]; 
    } 
    if ([value integerValue]<0) { 
     textField.text = [[NSString alloc] initWithFormat:@"0"]; 
     [slider setValue:0.0]; 
    } 

    [textField setText:value]; 

텍스트 필드의 값은 입력 된 값으로 유지되며 입력 값을 새 값으로 설정하면 무시됩니다.이 코드가 내 UITextField를 업데이트하지 않는 이유는 무엇입니까?

누군가 이유를 설명해 주시겠습니까?

+1

은 텍스트 입력란 제대로 IB에 텍스트 필드에 매여 있습니다 : 당신의 문제를 해결하기 위해

은, 코드의 수정 된 버전을 사용할 수 있습니까? 또한 "initWithFormat : @"% d ", * x"로 무엇을하고 있는지 잘 모르겠습니다. 또한, NSString alloc init 중 하나를 사용할 필요가 없습니다. 단지 textField.text = @ "255"; – rdelmar

답변

1
[textField setText:value]; 

은 값으로 다시 UITextField를 설정합니다.

1

메서드의 끝에서 textField.text 속성을 덮어 쓰고 있습니다 (대/소문자 중 하나에서 "수정 됨"과 상관없이).

원래 코드에서 마지막 줄을 확인하고 textField.text = xyz은 의미 상으로는 [textField setText:xyz]과 같습니다.

if (![value integerValue]) { 
    textField.text = [[NSString alloc] initWithFormat:@"%d", *x]; 
    [slider setValue:(float)*x]; 
} 
else if ([value integerValue]>100) { 
    textField.text = [[NSString alloc] initWithFormat:@"255"]; 
    [slider setValue:100.0]; 
} 
else if ([value integerValue]<0) { 
    textField.text = [[NSString alloc] initWithFormat:@"0"]; 
    [slider setValue:0.0]; 
} 
else { 
    textField.text = value; 
} 
관련 문제