如何从UI Textfield获取数字?

时间:2014-12-13 02:02:49

标签: objective-c xcode

我正在创建一个应用程序,用户将在两个textFields中输入汽车的速度,按button,应用程序将告诉您哪辆车更快。我知道为了做到这一点,你需要使用NSNumberFormatter,但我是否将代码放在一个单独的方法中,当点击按钮时,它会比较数字并调用它?

3 个答案:

答案 0 :(得分:1)

尝试:

NSDecimal *scannerValue = [NSDecimalNumber zero];
[[NSScanner scannerWithString:[textFieldInstance stringValue]] scanDecimal:scannerValue];
if ([scannerValue decimalValue] != [NSDecimalNumber zero]) { // got a number
} else { // not a number
}

可用方法记录here,其中包含类层次结构的链接。如果您需要进一步的帮助,请发表评论。

答案 1 :(得分:1)

首先,您应该将UITextField s限制为仅十进制值。请参阅THIS了解相同内容。

然后你可以做以下事情:

-(IBAction)fasterCar:(id)sender {

    int result = [self.txtField1.text intValue]; - [self.txtField1.text intValue];

    if (result > 0)              
         NSLog(@"1st one is faster");
    else if (result < 0)         
         NSLog(@"2nd one is faster);
    else                         
         NSLog(@"Both cars have equal speed");
}

可能看起来很老,效果很好。

答案 2 :(得分:0)

在下面的按钮操作方法中尝试这样: -

-(IBAction)calculateSpeed:(id)sender
{
    NSDecimalNumber *first=[NSDecimalNumber decimalNumberWithString:self.txt.text];
    NSDecimalNumber *second=[NSDecimalNumber decimalNumberWithString:self.txt2.text];
    (second > first) ? NSLog(@"Mclaren is faster") : NSLog(@"BMW is faster");
}