2011-04-15 143 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

相关问题