Новичок в iPhone SDK. Как я могу вставить текст в UILabel без 'setText' ...? - PullRequest
0 голосов
/ 27 января 2011

Хорошо, у меня есть базовое приложение, и я создал собственную цифровую клавиатуру, используя несколько кнопок. У меня есть кнопка, например 1, и UILabel выше. Я получил его там, где, когда вы нажимаете кнопку 1, он устанавливает текст метки на 1. Довольно простые вещи. Но мне нужно добавить несколько символов, и это не позволяет мне сделать это. Что-то вроде addText или insertText, но addText даже не является методом Какао, а insertText - это не то, что я ищу. Любая помощь? Извините за вопрос новичка. Спасибо!

Ответы [ 3 ]

2 голосов
/ 27 января 2011

Если вы ищете способ добавить символ в конец строки метки, сделайте что-то вроде этого:

[myLabel setText:[[myLabel text] stringByAppendingString:@"1"]];
1 голос
/ 27 января 2011

Текстовое свойство UILabel является строкой NSString.Вы должны просмотреть документацию NSString , чтобы увидеть, что все возможно.Методы stringByAppendingString, stringByAppendingFormat и stringWithFormat выглядят так, как будто они могут быть полезны для вашей проблемы.

0 голосов
/ 27 января 2011

@ Джефф Келли ответил на ваш вопрос о добавлении текста в UILabel.Что касается вашего последующего комментария о цене:

Если пользователь вводит числовые значения в UITextField, делегат должен ответить на метод -textField:shouldChangeCharactersInRange:replacementString:.Пример того, что вы можете сделать:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSNumberFormatter *fmt = [[[NSNumberFormatter alloc] init] autorelease];
    [fmt setGeneratesDecimalNumbers:YES];

    NSDecimalNumber *newCentValue = [[fmt numberFromString:string] decimalNumberByMultiplyingByPowerOf10:-2];
    // "price" is an instance, global, static, whatever.. NSDecimalNumber object
    NSDecimalNumber *newPrice = [[price decimalNumberByMultiplyingByPowerOf10:1] decimalNumberByAdding:newCentValue];

    NSString *labelText = [fmt stringFromNumber:newPrice];
    // do something with new label
}

Обратите внимание, что этот метод не работает с пользователем, желающим удалить цифру и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...