С. Джонс ответил неверно. Если вы используете средство форматирования, вы рискуете, что Apple в какой-то момент изменит свою кодовую базу и заставит средство форматирования выпустить частичный результат. Том тоже не прав. Если вы используете метод rangeOfCharacterFromSet и проверяете наличие NSNotFound, он зарегистрирует значение true, если строка содержит хотя бы одно число. Аналогичным образом, другие ответы в этой теме предлагают использовать метод целочисленных значений. Это также неправильно, потому что он зарегистрирует true, если в строке присутствует хотя бы одно целое число. ОП запросил ответ, который гарантирует, что вся строка является числовой. Попробуйте это:
NSCharacterSet *searchSet = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
Том был прав насчет этой части. Этот шаг дает вам нечисловые строковые символы. Но затем мы делаем это:
NSString *trimmedString = [string stringByTrimmingCharactersInSet:searchSet];
return (string.length == trimmedString.length);
Перевернутый набор символов Тома может TRIM строку. Таким образом, мы можем использовать этот метод обрезки, чтобы проверить, существуют ли какие-либо не цифры в строке, сравнивая их длины.
В стиле мы можем использовать стандартную привязку с RelativeSource для настройки свойства.
<ProgressBar Name="ProgressBar"
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Progress}"
Minimum="0"
Maximum="100" />
Затем в окне мы просто добавляем Progress = "50" или привязку куда-нибудь else.
Вам также нужно будет сделать фон кнопки прозрачным или изменить макет, чтобы увидеть его.