2010-01-24 44 views
0

對於我的問題以及在此之後的長時間解釋感到抱歉,可能對於在Cocoa和Objective-C中有經驗的人有一個簡單的解決方案,但是我剛剛在幾周前開始,我無法弄清楚如何獲得這件事情工作,Grrrrrrr!來自TextField的字符串/數字用於計算?

OK,讓我們把它像這樣,在我的窗口,我有以下幾點:所謂

2文本字段(的NSTextField):

  • blockOffText
  • blockOnText

1標籤(NSTextField):

  • flightTimeText

1按鈕(NSButton)呼籲:

  • updateButton

我想要做的是所有關於時間計算我猜,拿到 「開始時間」 中的一個TextField和另一個「結束時間」。 一個應該是「起飛時間」,另一個是「着陸時間」,或者例如「duty-startTime」和「duty-endTime」......這是一樣的! 然後我想計算「飛行時間」或「工作時間」並在標籤中顯示。

最後我還需要將數值或時間作爲整數存儲在數據庫中,值應該用每次對應的所有分鐘表示,但數據庫部分目前不是問題。

也許我可以在沒有格式但只有數字的情況下在TextField中編寫數字,並以某種方式獲得時間顯示格式? 我想編寫例如「1245」和「1525」,而不需要在小時和分鐘之間放置「:」,那麼我可以在格式化爲「12:45」「15:25」 TextField以某種方式?也許按下按鈕後?

好吧,無論如何,這是第二個問題,我真正的問題是我需要將我在TextField中寫入的值(「1245」和「1525」)分配給我調用的程序中的某些變量「BlockOff」和「BlockOn」。 我需要改造它們的整數,代表對應於它們value..example分鐘:

的1245將成爲765分鐘...(12次60 + 45)

和1525將成爲925分鐘...(15次60 + 25)

我該怎麼辦?

通過這種方式,我可以使用分鐘來計算差值來獲得航班時間,甚至可以將航班時間添加到其他航班時間。

目前我的程序工作有點不同 ...像這樣: 如果我直接給兩個變量賦值:

int blockOff = 765;

int blockOn = 925;

那麼我可以計算並顯示在兩個TextField格式化像我的起飛和降落時間想:「12:45」,「15:25」 ......我用其他2個變量這樣做:

int oreBlkOff,minBlkOff = 0;

minBlkOff = blockOff%60;

oreBlkOff =(blockOff-minBlkOff)/ 60;

然後我可以顯示在文本字段的值:

[blockOffText setStringValue:[的NSString stringWithFormat:@ 「%d:%d」,oreBlkOff,minBlkOff]];

與blockOnText和flightTimeText相同,所以這裏沒有問題,但這不是我真正需要的嗎?

如何獲得TEXTFIELD的價值並存儲可用於計算的變量值?

如何從變量中獲得第一個數字和最後的數字,所以我可以使用它們作爲小時和分鐘來計算?

我希望能夠在TEXTFIELD中輸入值,按「ENTER」或「RETURN」並獲取賦值給VARIABLE的值。

這是正確的方法,或者我只是在這方面採取錯誤的方式。 在另一個程序中,我使用了基本的可視化方式,這是我使用的方式。

非常感謝您爲您提供幫助!

贊布羅塔

+0

我認爲這可以幫助你:http://cocoakids.net/23-get-difference-between-two-nsdate-objects(查看演示項目)。 – Eimantas 2010-01-24 12:12:50

+7

所有的帽子都不會幫助你更快地獲得答案。 – kennytm 2010-01-24 12:14:37

回答

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"; 

我們得到的值,只是做:

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

讓我知道這是否對你有幫助。

1

要從文本字段獲得int值,您將使用浮點數integerValuefloatValue。但你一定要看看可可中的日期/時間控件。