UISteppper与textField连接

时间:2012-01-02 04:17:31

标签: ios cocoa-touch

如何将UIsteppertextField联系起来?当我连接它递增和递减但是,当我直接输入数字textfield之后尝试使用步进器递增时,该值将从stepper最小值开始。我想继续textField值。

1 个答案:

答案 0 :(得分:2)

iOS开发中没有您想要的绑定。基本上,您必须决定存储值的位置。您可以将值存储在步进器,文本字段或其他变量中。

其次,但同样重要的是,您的步进目标功能都是错误的。您的问题是,每次触发stepperPressed1:方法时,您都在重新设置步进器。我希望这与你的步进器的valueChanged事件有关,我认为它是。

让我们暂时假设您正在尝试将数字步进值存储在步进器中。

您应该只在viewDidLoad方法中设置一次步进器。然后在值更改时读取新值并将其写入文本字段。

例如:

-(void)viewDidLoad{
    [super viewDidLoad];
    [self.stepper setMinimumValue:0];
    [self.stepper setContinuous:YES];
    [self.stepper setWraps:NO];
    [self.stepper setStepValue:1];
    [self.stepper setMaximumValue:300];
    self.txtField.text=[NSString stringWithFormat:@"%g",self.stepper.value];
}
-(IBAction)stepperPressed1:(id)sender{
    self.txtField.text=[NSString stringWithFormat:@"%g",self.stepper.value];
}

现在,根据文本字段中键入的内容设置步进器中的值。您需要做的是当用户输入您想要获取该值的值并将其分配给步进器时。您可以将函数连接到textField的“退出时结束”事件。该功能看起来像这样:

-(IBAction)didEndOnExit:(id)sender {
    self.stepper.value = self.txtField.text.doubleValue;
    self.txtField.text=[NSString stringWithFormat:@"%g",self.stepper.value];
}