我有10个不同名称的按钮。选择每个按钮我需要将按钮的标题附加到NSTextField而不删除旧的字符串。
我尝试过以下方式。
- (IBAction)nextButton:(NSButton*)sender
{
int tag = [sender tag];
if (tag==1) {
[resultField setStringValue:[sender title]];
}
else if (tag==2) {
[resultField setStringValue:[sender title]];
}
else if (tag==3) {
[resultField setStringValue:[sender title]];
}
else if (tag==4) {
[resultField setStringValue:[sender title]];
}
else if (tag==5) {
[resultField setStringValue:[sender title]];
}
else if (tag==6) {
[resultField setStringValue:[sender title]];
}
else if (tag==7) {
[resultField setStringValue:[sender title]];
}
else if (tag==8) {
[resultField setStringValue:[sender title]];
}
else if (tag==9) {
[resultField setStringValue:[sender title]];
}
else if (tag==10) {
[resultField setStringValue:[sender title]];
}
}
这里resultField是我的NSTextField。
setStringValue覆盖新字符串,这样我就无法将字符串附加到NSTextField.Is有任何简单的方法来实现它,或者使用NSString值来保存前一个字符串并将此字符串设置为NSTextFiled以及新按钮的字符串值
答案 0 :(得分:6)
如下:
[resultField setStringValue:
[NSString stringWithFormat: @"%@ %@", [resultField stringValue], [sender title]];
这里的想法是你获取NSTextField的原始内容并通过stringWithFormat
撰写一个新字符串,然后将该新字符串分配给你的NSTextField。
答案 1 :(得分:3)
使用stringByAppendingString:
或stringWithFormat:
将两个字符串连接在一起:
resultField.stringValue = [resultField.stringValue stringByAppendingString:sender.title];
或:
resultField.stringValue = [NSString stringWithFormat:@"%@ %@", resultField.stringValue, sender.title];
如果您真的想要基本追加,请选择stringByAppendingString:
;如果您需要空格/等,请选择stringWithFormat:
。