簡體   English   中英

Xcode可可OSX NSTextfield查詢

[英]Xcode cocoa osx NSTextfield query

我創建了一個簡單的基於數學的應用程序。 該應用程序向用戶詢問6個乘法表問題。 例如Q1 10 x 10用戶輸入答案應用程序顯示用戶答案是正確還是不正確,並使用以下內容顯示

IBOutlet NSTextField *CorrectIncorrect;

在應用程序循環中(1個問題,共6個問題),CorrectIncorrect用於使用以下代碼行顯示字符串“正確”或“不正確”

[CorrectIncorrect setStringValue:receivedAnswer];
[[CorrectIncorrect window] display];

然后,在向用戶提出下一個問題時,使用以下代碼清除任一字符串。

[CorrectIncorrect setStringValue:@""];
[[CorrectIncorrect window] display];

最初,每個CorrectIncorrect字符串都會被快速清除,因此用戶從不會看到他們的答案是“正確”還是“錯誤”。 因此,我使用時間延遲方法來減慢該過程,以使用戶可以在清除顯示之前看到顯示。請參閱下文

- (void)TimeDelay
{
    startInterval = [NSDate timeIntervalSinceReferenceDate];
    stopInterval = [NSDate timeIntervalSinceReferenceDate];
    while ((stopInterval - startInterval) <= 1)
    {

    stopInterval = [NSDate timeIntervalSinceReferenceDate];
    }
}

這在Xcode 5中工作正常。在Xcode 7.3.1中不起作用。 任何建議表示贊賞。

一些事情:

1)時間間隔以秒為單位,因此<= 1確實不是很多時間,您是否嘗試過增加時間並查看其外觀?

2)您還應該考慮添加一個按鈕,例如“轉到下一個問題”。 這樣一來,您就不需要計時器

3)如果您想要一個計時器來重置字符串,則應該只使用Grand Central Dispatch

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 10 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
    [CorrectIncorrect setStringValue:@""];
});

一條直線,更直觀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM