我刚刚学习了制作转换应用程序。很好,但我想扩展它。tut 让您输入华氏温度值,然后转换为摄氏温度。很基本。所以我也想添加一个开尔文转换。但是代码只允许你插入一个华氏温度的数字。因此,在添加了 Kelvin 文本字段后,我想查看哪个文本框中有文本。所以我使用了以下代码:
- (IBAction)convert:(id)sender
{
if ([fahrenheit isFirstResponder])
{
float x = [[fahrenheit text] floatValue];
float y = (x - 32.0f) * (5.0f/9.0f); //celcius
float z = y + 273.15f; //kelvin
[celcius setText:[NSString stringWithFormat:@"%3.2f" , y]];
[kelvin setText:[NSString stringWithFormat:@"%3.2f" , z]];
[fahrenheit resignFirstResponder];
} else if ([celcius isFirstResponder])
{
float x = [[celcius text] floatValue];
float y = 32.0f + ((9.0f/5.0f) * x); //farenheit
float z = x + 273.12f; //kelvin
[fahrenheit setText:[NSString stringWithFormat:@"%3.2f" , y]];
[kelvin setText:[NSString stringWithFormat:@"%3.2f" , z]];
[celcius resignFirstResponder];
}else if ([kelvin isFirstResponder])
{
float x = [[kelvin text] floatValue];
float y = x - 273.15f; //celcius
float z = 32.0f + ((9.0f/5.0f) * y); //farenheit
[celcius setText:[NSString stringWithFormat:@"%3.2f" , y]];
[fahrenheit setText:[NSString stringWithFormat:@"%3.2f" , z]];
[kelvin resignFirstResponder];
}
}
这使我可以在任何文本字段中输入一个数字,然后进行转换。但后来我决定关闭键盘。我的代码说要resignFirstResponder。但是随后转换操作不起作用,因为现在没有第一响应者。关于如何检查哪个文本框中有文本,然后进行转换的任何线索?提前感谢您的帮助。