1

这是我编写的为每个输出添加一点“ConsoleCalc”前缀的方法。终端是一个 UITextView

-(void)writeToTerminal:(NSString *)string {
    self.terminal.text = [NSString stringWithFormat:@"ConsoleCalc > %@ \n", string];
}

您可以看到我尝试使其添加新行的 '\n'。但是每当我输入一个新的输入时,TextView 只会用我输入的新结果替换那里的任何内容。

4

3 回答 3

2

我想你正在寻找

self.terminal.text = [self.terminal.text stringByAppendingString:[NSString stringWithFormat:@"\nConsoleCalc > %@", string]];
于 2013-08-16T18:35:07.517 回答
1

您必须捕获当前文本值,然后将新字符串附加到当前文本:

NSString *currentText = [self.terminal.text copy];
NSString *newLine = [NSString stringWithFormat:@"ConsoleCalc > %@ \n",string];
NSString *newText = [NSString stringWithFormat:@"%@\n%@",currentText,newLine];
self.terminal.text = newText;
于 2013-08-16T18:36:27.053 回答
1

@CodeInOrange 的答案在技术上是正确的,但可以很好地缩短使用stringByAppendingFormat:而不是附加[NSString stringWithFormat:]

-(void)writeToTerminal:(NSString *)string
{
    [self.teminal setText:[self.teminal.text stringByAppendingFormat:@"ConsoleCalc > %@ \n",string]];
}
于 2013-08-16T18:37:28.243 回答