TextField中的字符串/数字用于计算?

时间:2010-01-24 12:03:11

标签: cocoa

对不起我的问题以及此后的长篇解释,对于那些有Cocoa和Objective-C经验的人来说,可能有一个简单的解决方案,但我几周前才开始,我无法弄清楚如何得到这个东西,Grrrrrrr !!

好的,让我们这样说吧,在我的窗口中我有以下内容:

2 TextField(NSTextField)调用:

  • blockOffText
  • blockOnText

1标签(NSTextField)调用:

  • flightTimeText

1按钮(NSButton)调用:

  • updateButton

我想要的是所有关于时间计算的猜测,在一个TextField中获得“开始时间”,在另一个中获得“结束时间”。 一个应该是“起飞时间”而另一个应该是“着陆时间”或者例如“责任开始时间”和“责任结束时间”......它们是一样的! 然后我想计算“飞行时间”或“工作时间”并在标签中显示它。

最后,我还需要将值或时间作为整数存储在数据库中,该值应该由每次对应的所有分钟表示,但数据库部分目前不是问题。< / p>

也许我可以在TextField中编写没有格式但只是编号的数字并以某种方式显示格式化的时间? 我想编写例如“1245”和“1525”,而不需要在小时和分钟之间放置“:”,然后我可以在TextField中获得格式为“12:45”“15:25”的值某种程度上来说?也许在按下按钮后?

好的,无论如何这是第二个问题,我真正的问题是我需要将我在TextField(“1245”和“1525”)中写入的值分配给程序中的某些变量称为“BlockOff”和“BlockOn”。 我需要将它们转换为一个整数,表示与其值相对应的分钟数。例如:

1245将成为765分钟......(12次60 + 45)

和1525将成为925分钟......(15次60 + 25)

我该怎么做?

通过这种方式,我可以使用分钟计算差异来获得飞行时间,甚至可以将飞行时间添加到其他飞行时间。

目前我的程序工作方式略有不同 ...像这样: 如果我直接将值赋给两个变量:

int blockOff = 765;

int blockOn = 925;

然后我可以计算并在两个TextField中显示takeOff和着陆时间格式化为我想要的:“12:45”“15:25”...我使用其他2个变量来执行此操作:

int oreBlkOff,minBlkOff = 0;

minBlkOff = blockOff%60;

oreBlkOff =(blockOff - minBlkOff)/ 60;

然后我可以在TextField中显示值:

[blockOffText setStringValue:[NSString stringWithFormat:@“%d:%d”,oreBlkOff,minBlkOff]];

与blockOnText和flightTimeText相同,所以没有问题,但这不是我真正需要的吗?

我如何获得TEXTFIELD的价值并将值存储在可用于计算的变量中?

我如何首先获取数据并从变量中获取数据,以便我可以将它们用作我的计算的小时和分钟?

我想在TEXTFIELD中输入值,按“输入”或“返回”并获得分配给变量的值。

这是正确的方式还是我只是走错了路。 在另一个程序中,我在视觉基础上使用的是我使用的方式。

非常感谢您的帮助!

詹卢卡

2 个答案:

答案 0 :(得分:1)

要从文本字段中获取int值,您可以使用integerValuefloatValue进行浮点运算。但是你一定要查看cocoa中的日期/时间控件。

答案 1 :(得分:0)

好的,如果我没有错过你长期问题的重点...... 你有一个类似@“2345:8743”的文本字段,你想得到int个变量中的两个数字(a = 2345,b = 8743)。

首先,您需要在两个NSStrings中获取数字的这两个文本表示。你可以这样做:

NSString * yourString = @"2345:8743";
NSString *stringA = [yourString substringToIndex:4]; //stringA = @"2345"
NSString *stringB = [yourString substringFromIndex:5]; //stringB = @"8743";

现在要获取in值,只需执行:

int a = [stringA intValue];
int b = [stringB intValue];

请告诉我这是否对您有所帮助。