Ios 如何使用uistepper增加或减少文本字段值?
我目前有一个UITextField,其中有一些值,此外还有一个UIStepper。 我想知道如何使用UIStepper来递增/递减textfield值 代码: UIStepper的值更改操作 我试过这个Ios 如何使用uistepper增加或减少文本字段值?,ios,objective-c,uitextfield,uistepper,Ios,Objective C,Uitextfield,Uistepper,我目前有一个UITextField,其中有一些值,此外还有一个UIStepper。 我想知道如何使用UIStepper来递增/递减textfield值 代码: UIStepper的值更改操作 我试过这个 - (IBAction)changedX:(UIStepper*)sender { double value = [sender value]; self.XStepper.value=[self.XCoordinate.text doubleValue]; self.XCoordinate.
- (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中更新它,以便相应地增加/减少当前值
谢谢请尝试以下代码:
- (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];
}
希望它能帮助你你不应该用这种方法。据我所知,您希望能够从
UIStepper
更改UITextfield
中的文本,并且,如果UITextfield
中的文本更改,您还希望更新步进器
您应该使用UIStepper
的Value Changed
事件来更新文本字段,但是当您想要从文本字段更新实际步进器时,您应该有另一种方法
- (void)updateStepper:(UIStepper *)stepper fromTextField:(UITextField *)textfield {
NSInteger value = [textfield.text integerValue];
[stepper setValue:value];
}
将stepper.value设置为ViewDidDisplay/viewDidLoad中的默认值这一备选方案对我很有效。每次编辑文本字段时,都会设置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;
我使用了您的代码,但它从0开始,然后从0开始递增。要从数字形成字符串,如果您使用文字将更加优雅
[@(value)stringValue]
@kirtimali文本字段更改为1并从中递增,我已经尝试过了,它不接受当前值,它从1开始并从中递增,我想从文本字段中获取值并使用stepper更新该值。@kirtimali例如,我的UITextField中已经有一个值212,现在,当我使用递增/递减步进器时,它必须更改为211或210,这取决于我是递增还是递减。它不应该从0开始递增到1。您可以设置viewdidload或textfieldendediting[self.stepper setValue:yoyrtxt double value];我也提出了类似的建议。值的差异可以通过步进器和滑块来更改,这里是textfield和stepper。那么您是说从UIStepper的值更改方法调用上述方法吗?不。当从textfield更改值时,您应该调用此方法。例如,如果从键盘键入新值。