NSTextField setStringValue: добавить строки в NSTextField - PullRequest
3 голосов
/ 27 марта 2012

У меня есть около 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. Есть какой-либо простой способ реализовать это или использовать значение NSString для хранения предыдущей строки и установить для этой строки значение NSTextFiled вместе со значением строки новой кнопки .

Ответы [ 2 ]

6 голосов
/ 27 марта 2012

Как насчет чего-то вроде:

[resultField setStringValue: 
    [NSString stringWithFormat: @"%@ %@", [resultField stringValue], [sender title]];

Идея заключается в том, что вы берете исходное содержимое вашего NSTextField и создаете новую строку с помощью stringWithFormat, а затем назначаете эту новую строку вашему NSTextField.

3 голосов
/ 27 марта 2012

Используйте stringByAppendingString: или stringWithFormat:, чтобы объединить две строки:

resultField.stringValue = [resultField.stringValue stringByAppendingString:sender.title];

или:

resultField.stringValue = [NSString stringWithFormat:@"%@ %@", resultField.stringValue, sender.title];

Выберите stringByAppendingString:, если вы действительно хотите базовое добавление, илиstringWithFormat: если вам нужны пробелы / и т. Д. Между ними.

...