NSTextField setStringValue:将字符串追加到NSTextField

时间:2012-03-27 12:25:15

标签: objective-c macos cocoa nstextfield

我有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以及新按钮的字符串值

2 个答案:

答案 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: