2011-04-15 137 views
0

我目前正在嘗試在Obj-C中編寫一個函數,它允許我輸入一個字符(進入NSTextField),等待30毫秒並鍵入NSString的下一個字符。
例如;如何在Obj-C中鍵入一個字符並等待某些ammout時間?

NSString * st = @"hello, world"; 
NSTextField * tf; 
char curr; 
int index = 0; 
int i; 

for(i=0;i<[st length]; i++){ 
    curr = [st characterAtIndex:index]; 
    index++; 
    //Now append the char to the NSTextField tf; 
    //Wait 30 milliseconds 
} 

回答

2

在單個函數中執行此操作會阻止用戶界面,除非您經歷了自行運行runloop的所有麻煩。慣用的解決方案只是使用NSTimer

+0

這意味着我不能這樣做,因爲我以前在C#中使用過?不好,但是謝謝 – 2011-04-15 20:36:22

+0

如果你在上面的循環中等待,它會阻塞C#中的線程 - 儘管在.NET下系統對UI的線程使用有些不同,但你仍然通常會減少響應性。如果不適合,可以選擇'NSTimer'。用於循環的'NSOperation'和用於字符插入的'performSelectorOnMainThread'。 – CRD 2011-04-15 21:25:32

相關問題