[英]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.