我目前有一个 UITextField ,它有一些值,除此之外我还有一个 UIStepper 。 我想知道如何使用 UIStepper 来增加/减少文本字段值。
CODE :
UIStepper
的值更改操作第一次我试过这个
- (IBAction)changedX:(UIStepper*)sender
{
double value = [sender value];
self.XStepper.value=[self.XCoordinate.text doubleValue];
self.XCoordinate.text=[NSString stringWithFormat:@"%g",value];
NSLog(@"%f",value);
}
然后我改为:
if ([sender value]==1) {
double temp= [self.XCoordinate.text doubleValue];
temp=temp+1;
self.XCoordinate.text=[NSString stringWithFormat:@"%g",temp];
}
else
{
double temp= [self.XCoordinate.text doubleValue];
temp=temp-1;
self.XCoordinate.text=[NSString stringWithFormat:@"%g",temp];
}
我不明白如何获取当前 UITextField 值并在 UIStepper 中更新它,以便相应地递增/递减当前值。
由于
答案 0 :(得分:0)
试试这段代码:
- (void)viewDidLoad;
{
[self.stepper setValue:10];
// steppr get valye from textfiled
}
- (IBAction)stepperChanged:(UIStepper *)sender
{
NSUInteger value = sender.value;
NSLog(@"%d",value);
NSLog(@"%@",self.XCoordinate.text);
self.XCoordinate.text = [@(value) stringValue];
[self.stepper setValue:value];
}
-(void)textFieldDidEndEditing:(UITextField *)textField;
{
[self.stepper setValue: self.XCoordinate.text.doubleValue];
}
希望对你有所帮助
答案 1 :(得分:0)
你不应该在这种方法中这样做。根据我的理解,您希望能够从UITextfield
更改UIStepper
中的文字,如果UITextfield
中的文字发生更改,则您希望更新步进器。
您应该使用Value Changed
的{{1}}事件来更新文本字段,但是当您想要从文本字段更新实际的步进器时,您应该有另一种方法。
UIStepper
答案 2 :(得分:0)
将stepper.value设置为viewDidAppear / viewDidLoad中的默认值
答案 3 :(得分:0)
这个替代方案对我有用。每次编辑文本字段时,都会设置stepper.value。这样,当我点击步进器时,它可以使用它已有的值,文本字段值或它自己的值。
- (IBAction)didTapStepper:(UIStepper *)sender {
self.textFieldName.text = [NSString stringWithFormat:@"%ld", (long)sender.value];
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if(textField == self.textFieldName){
self.stepperName.value = [[NSString stringWithFormat:@"%@%@", self.textFieldName.text, string] doubleValue];
}
return YES;
}
编辑:不要忘记添加代表 UITextFieldDelegate , 并指定自己。
self.textFieldName.delegate = self;