Что лучший способ состоит в том, чтобы проверить вход валюты в UITextField?

17
задан Ashley Mills 28 September 2018 в 13:03
поделиться

5 ответов

Возможно, Вы могли присоединить UITextFieldDelegate на управлении и иметь его реализация textField:shouldChangeCharactersInRange:replacementString: Тот путь, если оно видит какие-либо символы, которые Вы не хотите в поле, оно может отклонить их.

7
ответ дан 30 November 2019 в 09:58
поделиться

В сочетании с textField:shouldChangeCharactersInRange:replacementString: предложение, сделанное Marc, необходимо передать текст через NSNumberFormatter использование NSNumberFormatterCurrencyStyle. Это обработает причуды форматирования валюты и обработает локаль определенные опции.

существует раздел "Data Formatting Programming Guide for Cocoa" в документации iPhone при поиске его. К сожалению, большей частью информации о UI здесь является конкретный Mac OS X (не работает над iPhone), но это покажет Вам, как использовать классы средства форматирования.

7
ответ дан 30 November 2019 в 09:58
поделиться

Используя NSNumberFormatter корректный ответ. Это обработает проверку и преобразование строки к и от типа правильного объекта.

1
ответ дан 30 November 2019 в 09:58
поделиться

В то время как вы можете возиться с NSNumberFormatter, я обнаружил, что проще просто отсеивать все, кроме 0–9 и.

У меня это хорошо работает:


- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSCharacterSet *nonNumberSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet];

return ([string stringByTrimmingCharactersInSet:nonNumberSet].length > 0);

}

21
ответ дан 30 November 2019 в 09:58
поделиться

Если вы хотите, чтобы они могли вводить только цифры, вы можете также рассмотреть цифровую клавиатуру

2
ответ дан 30 November 2019 в 09:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: