我有NSTextField
根据需要显示状态信息。它的工作方式有点......问题是它只显示updatedString
中的最后一个NSTextField
而没有显示它。检查NSLog
时会显示所有字符串。 NSTextField
无法快速处理它,或者它显示得如此之快,人眼无法看到它吗?
示例:
- (void)update {
NSString* updatedString = @"Update - 1";
[self updateTextField:updatedString];
// do other stuff
updatedString = @"Update - 2";
[self updateTextField:updatedString];
// do other stuff
updatedString = @"Update - 3";
[self updateTextField:updatedString];
// do other stuff
updatedString = @"Update - 4";
[self updateTextField:updatedString];
}
- (void)updateTextField: (NSString *)updatedString {
[TextFieldValue setStringValue:[NSString stringWithFormat:@"%@", updatedString]];
}
NSTextField显示(一次):
Update - 4
NSLog显示:
Update - 1
Update - 2
Update - 3
Update - 4
答案 0 :(得分:0)
您可以通过
将字符串附加到文本字段中[TextFieldValue setStringValue:[NSString stringWithFormat:@"%@%@", [TextFieldValue stringValue], updatedString]];
如果你想睡觉,请使用
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1/*seconds*/, NO);
而不是sleep
,因此您的应用不会被冻结
答案 1 :(得分:0)
有同样的问题,通过[CATransaction flush]修复了它;和NSTextField setstringValue之后的一个usleep。