Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы основы ссылка класса NSFormatter

Опции
Развертывание Target:

На этой странице
Язык:

NSFormatter

NSFormatter абстрактный класс, объявляющий интерфейс для объектов, создающих, интерпретирующих и проверяющих текстовое представление содержания ячейки. Платформа Основы обеспечивает два конкретных подкласса NSFormatter генерировать эти объекты: NSNumberFormatter и NSDateFormatter.

Разделение на подклассы примечаний

NSFormatter предназначается для разделения на подклассы. Пользовательское средство форматирования может ограничить ввод и улучшить дисплей данных новыми способами. Например, у Вас могло быть пользовательское средство форматирования, гарантирующее, чтобы порядковые номера, введенные пользователем, соответствовали предопределенным форматам. Прежде чем Вы решите создать пользовательское средство форматирования, удостоверьтесь, что Вы не можете сконфигурировать общедоступные подклассы NSDateFormatter и NSNumberFormatter удовлетворить Ваши требования.

Для получения инструкций по тому, как создать Ваше собственное средство форматирования, посмотрите Создание Пользовательского Средства форматирования.

Оператор импорта


Swift

import Foundation

Objective C

@import Foundation;

Доступность


Доступный в OS X v10.0 и позже.
  • Реализация по умолчанию этого метода повышает исключение.

    Объявление

    Swift

    func stringForObjectValue(_ anObject: AnyObject) -> String?

    Objective C

    - (NSString *)stringForObjectValue:(id)anObject

    Параметры

    anObject

    Объект, для которого возвращается текстовое представление.

    Возвращаемое значение

    NSString возразите, что дословно представляет object для дисплея. Возвраты nil если object не имеет корректного класса.

    Обсуждение

    При реализации подкласса возвратитесь NSString возразите, что дословно представляет объект ячейки для дисплея и — если editingStringForObjectValue: не реализован — для редактирования. Сначала протестируйте переданный - в объекте видеть, имеет ли это корректный класс. Если это не, возвратиться nil; но если это имеет правильный класс, возвратитесь должным образом отформатированный и, при необходимости, локализованная строка. (См. спецификацию NSString класс для форматирования и локализации подробных данных.)

    Следующая реализация (который соединяется с getObjectValue:forString:errorDescription: пример выше) префиксы двухразрядное представление плавающее со знаком доллара:

    • - (NSString *)stringForObjectValue:(id)anObject {
    • if (![anObject isKindOfClass:[NSNumber class]]) {
    • return nil;
    • }
    • return [NSString stringWithFormat:@"$%.2f", [anObject floatValue]];
    • }

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвраты реализации по умолчанию nil указать, что объект средства форматирования не обеспечивает приписанную строку.

    Объявление

    Swift

    func attributedStringForObjectValue(_ anObject: AnyObject, withDefaultAttributes attributes: [NSObject : AnyObject]?) -> NSAttributedString?

    Objective C

    - (NSAttributedString *)attributedStringForObjectValue:(id)anObject withDefaultAttributes:(NSDictionary *)attributes

    Параметры

    anObject

    Объект, для которого возвращается текстовое представление.

    attributes

    Атрибуты по умолчанию для использования для возвращенной приписанной строки.

    Возвращаемое значение

    Представляющая приписанная строка anObject.

    Обсуждение

    При реализации подкласса возвратитесь NSAttributedString возразите, должна ли строка для дисплея иметь некоторые атрибуты. Например, Вы могли бы хотеть, чтобы отрицательные величины в финансовом приложении появились в красном тексте. Вызовите свою реализацию stringForObjectValue: для получения неприписанной строки затем создайте NSAttributedString объект с ним (см. initWithString:). Используйте attributes словарь по умолчанию для сброса атрибутов строки, когда изменение в значении гарантирует его (например, отрицательная величина становится положительной) для получения информации о создании приписанных строк, видит Приписанное Строковое Руководство по программированию.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Реализация по умолчанию этого метода вызывает stringForObjectValue:.

    Объявление

    Swift

    func editingStringForObjectValue(_ anObject: AnyObject) -> String

    Objective C

    - (NSString *)editingStringForObjectValue:(id)anObject

    Параметры

    anObject

    Объект, для которого можно возвратить строку редактирования.

    Возвращаемое значение

    NSString объект, использующийся для редактирования текстового представления anObject.

    Обсуждение

    При реализации подкласса переопределите этот метод только, когда строка, которую пользователи видят и строка, которую они редактируют, отличается. В Вашей реализации возвратитесь NSString объект, использующийся для редактирования, после логики, рекомендуемой для реализации stringForObjectValue:. Если Вы хотите знаки доллара в выведенных на экран строках, удаленных для редактирования, как пример, Вы реализовали бы этот метод.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Реализация по умолчанию этого метода повышает исключение.

    Объявление

    Swift

    func getObjectValue(_ anObject: AutoreleasingUnsafeMutablePointer<AnyObject?>, forString string: String, errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>) -> Bool

    Objective C

    - (BOOL)getObjectValue:(out id *)anObject forString:(NSString *)string errorDescription:(out NSString **)error

    Параметры

    anObject

    Если преобразование успешно, по возврату содержит объект, создаваемый из string.

    string

    Строка для парсинга.

    error

    Если не -nil, если существует ошибка во время преобразования, по возврату содержит NSString объект, описывающий проблему.

    Возвращаемое значение

    YEStrue если преобразование от строки до объекта содержания ячейки было успешно, иначе NOfalse.

    Обсуждение

    При реализации подкласса возвратите ссылкой объект anObject после создания его от string. Возвратиться YEStrue если преобразование успешно. Если Вы возвращаетесь NOfalse, также возвратитесь косвенно (в error) локализованное презентабельное пользователем NSString объект, объясняющий причину, почему преобразование перестало работать; делегат (если таковые имеются) NSControl объект, управляющий ячейкой, может тогда реагировать на отказ в control:didFailToFormatString:errorDescription:. Однако, если error nil, отправитель не интересуется описанием ошибки, и Вы не должны пытаться присвоить тот.

    Следующий пример (который соединяется с поданным примером stringForObjectValue:) преобразовывает строковое представление суммы в долларах, включающей знак доллара; это использует NSScanner экземпляр для преобразования этой суммы в плавание после снятия начального знака доллара.

    • - (BOOL)getObjectValue:(id *)obj forString:(NSString *)string errorDescription:(NSString **)error {
    • float floatResult;
    • NSScanner *scanner;
    • BOOL returnValue = NO;
    • scanner = [NSScanner scannerWithString: string];
    • [scanner scanString: @"$" intoString: NULL]; //ignore return value
    • if ([scanner scanFloat:&floatResult] && ([scanner isAtEnd])) {
    • returnValue = YES;
    • if (obj)
    • *obj = [NSNumber numberWithFloat:floatResult];
    • } else {
    • if (error)
    • *error = NSLocalizedString(@"Couldn’t convert to float", @"Error converting");
    • }
    • return returnValue;
    • }

    Специальные замечания

    До OS X v10.6, реализация этого метода в обоих NSNumberFormatter и NSDateFormatter возвратился бы YEStrue и объектное значение, даже если только могла бы быть проанализирована часть строки. Это проблематично, потому что Вы не можете быть уверены, какая часть строки была проанализирована. Если часть строки не может быть проанализирована, для приложений, соединенных на или после OS X v10.6, этот метод вместо этого возвращает ошибку. Можно использовать getObjectValue:forString:range:error: для получения старого поведения — это возвращает диапазон успешно проанализированной подстроки.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – stringForObjectValue:

  • Возвращает булево значение, указывающее, допустима ли частичная строка.

    Объявление

    Swift

    func isPartialStringValid(_ partialString: String, newEditingString newString: AutoreleasingUnsafeMutablePointer<NSString?>, errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>) -> Bool

    Objective C

    - (BOOL)isPartialStringValid:(NSString *)partialString newEditingString:(NSString **)newString errorDescription:(NSString **)error

    Параметры

    partialString

    Текст в настоящее время в ячейке.

    newString

    Если partialString потребности, которые будут изменены по возврату, содержит замещающую строку.

    error

    Если не -nil, если сбои проверки содержат NSString объект, описывающий проблему.

    Возвращаемое значение

    YEStrue если partialString приемлемое значение, иначе NOfalse.

    Обсуждение

    Этот метод вызывается каждый раз, когда пользователь нажимает клавишу, в то время как ячейка имеет клавиатурный фокус — это позволяет Вам проверить и отредактировать текст ячейки, поскольку пользователь вводит его.

    В реализации подкласса оценить partialString согласно контексту, отредактируйте текст при необходимости и возврат ссылкой любая отредактированная строка в newString. Возвратиться YEStrue если partialString приемлемо и NOfalse если partialString недопустимо. Если Вы возвращаетесь NOfalse и newString nil, дисплеи ячейки partialString минус введенный последний знак. Если Вы возвращаетесь NOfalse, можно также возвратиться косвенно NSString объект (в error) это объясняет причину, почему проверка перестала работать; делегат (если таковые имеются) NSControl объект, управляющий ячейкой, может тогда реагировать на отказ в control:didFailToValidatePartialString:errorDescription:. Если замена произойдет, диапазон выбора будет всегда устанавливаться до конца текста.

    Этот метод является методом совместимости. Если подкласс переопределяет этот метод и не переопределяет isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:, как этот метод вызовут прежде (isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription: просто вызовы этот по умолчанию).

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Этот метод должен быть реализован в подклассах, хотящих проверить пользовательские изменения в строке в поле, где пользователь изменяется, не обязательно в конце строки и сохраняют выбор (или устанавливают различный, такой как выбор ошибочной части строки пользователь ввел).

    Объявление

    Swift

    func isPartialStringValid(_ partialStringPtr: AutoreleasingUnsafeMutablePointer<NSString?>, proposedSelectedRange proposedSelRangePtr: NSRangePointer, originalString origString: String, originalSelectedRange origSelRange: NSRange, errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>) -> Bool

    Objective C

    - (BOOL)isPartialStringValid:(NSString **)partialStringPtr proposedSelectedRange:(NSRangePointer)proposedSelRangePtr originalString:(NSString *)origString originalSelectedRange:(NSRange)origSelRange errorDescription:(NSString **)error

    Параметры

    partialStringPtr

    Новая строка для проверки.

    proposedSelRangePtr

    Диапазон выбора, который будет использоваться, если строка будет принята или заменена.

    origString

    Исходная строка, перед предложенным изменением.

    origSelRange

    Выбор передвигается, по которому должно иметь место изменение.

    error

    Если не -nil, если сбои проверки содержат NSString объект, описывающий проблему.

    Возвращаемое значение

    YEStrue если partialStringPtr приемлемо, иначе NOfalse.

    Обсуждение

    В реализации подкласса оценить partialString согласно контексту. Возвратиться YEStrue если partialStringPtr приемлемо и NOfalse если partialStringPtr недопустимо. Присвойте новую строку partialStringPtr и новый диапазон к proposedSelRangePtr и возвратитесь NOfalse если Вы хотите заменить строку и изменить диапазон выбора. Если Вы возвращаетесь NOfalse, можно также возвратиться косвенно NSString объект (в error) это объясняет причину, почему проверка перестала работать; делегат (если таковые имеются) NSControl объект, управляющий ячейкой, может тогда реагировать на отказ в control:didFailToValidatePartialString:errorDescription:.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Указывает ширину модуля, определяя текстовое представление.

    Объявление

    Swift

    enum NSFormattingUnitStyle : Int { case Short case Medium case Long }

    Objective C

    enum { NSFormattingUnitStyleShort = 1, NSFormattingUnitStyleMedium, NSFormattingUnitStyleLong, }; typedef NSUInteger NSFormattingUnitStyle;

    Константы

    • Short

      NSFormattingUnitStyleShort

      Указывает короткую ширину.

      Соответствующее значение NSInteger, равный 1.

      Доступный в OS X v10.10 и позже.

    • Medium

      NSFormattingUnitStyleMedium

      Указывает среднюю ширину.

      Соответствующее значение NSInteger, равный 2.

      Доступный в OS X v10.10 и позже.

    • Long

      NSFormattingUnitStyleLong

      Указывает долгую ширину.

      Соответствующее значение NSInteger, равный 3.

      Доступный в OS X v10.10 и позже.

    Обсуждение

    Модуль представлен в самой короткой доступной нотации. Например, для английского языка, при форматировании «3 фунтов»: NSFormattingUnitStyleLong составляет «3 фунта»; NSFormattingUnitStyleMedium составляет «3 фунта»; NSFormattingUnitStyleShort «3#».

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.10 и позже.

  • Указывает контекст капитализации.

    Объявление

    Swift

    enum NSFormattingContext : Int { case Unknown case Dynamic case Standalone case ListItem case BeginningOfSentence case MiddleOfSentence }

    Objective C

    enum { NSFormattingContextUnknown = 0, NSFormattingContextDynamic = 1, NSFormattingContextStandalone = 2, NSFormattingContextListItem = 3, NSFormattingContextBeginningOfSentence = 4, NSFormattingContextMiddleOfSentence = 5, }; typedef NSUInteger NSFormattingContext;

    Константы

    • Unknown

      NSFormattingContextUnknown

      Указывает, что контекст капитализации, который будет использоваться, неизвестен.

      Это - значение по умолчанию. Соответствующее значение NSInteger, равный 0.

      Доступный в OS X v10.10 и позже.

    • Dynamic

      NSFormattingContextDynamic

      Указывает неопределенный формат.

      Контекст капитализации определяется динамично от набора {NSFormattingContextStandalone, NSFormattingContextBeginningOfSentence, NSFormattingContextMiddleOfSentence}.

      Когда строковый прокси используется в stringWithFormat:, средство форматирования возвращает строковый прокси для универсальной строки и затем форматирует строковое использование NSFormattingContextUnknown. Средство форматирования получает контекст из расположения универсальной строки и затем форматирует строку соответственно.

      Соответствующее значение NSInteger, равный 1.

      Доступный в OS X v10.10 и позже.

    • Standalone

      NSFormattingContextStandalone

      Указывает форматирование в течение начала предложения.

      Контекст капитализации, если символ даты или даты должен быть отформатирован с капитализацией, подходящей для автономного использования, такого как изолированное имя на странице календаря.

      Соответствующее значение NSInteger, равный 2.

      Доступный в OS X v10.10 и позже.

    • ListItem

      NSFormattingContextListItem

      Указывает форматирование для списка или меню.

      Контекст капитализации, если символ даты или даты должен быть отформатирован с капитализацией, подходящей для списка или пункта меню.

      Соответствующее значение NSInteger, равный 3.

      Доступный в OS X v10.10 и позже.

    • BeginningOfSentence

      NSFormattingContextBeginningOfSentence

      Указывает форматирование в течение начала предложения.

      Контекст капитализации, если символ даты или даты должен быть отформатирован с капитализацией, надлежащей в течение начала предложения.

      Соответствующее значение NSInteger, равный 4.

      Доступный в OS X v10.10 и позже.

    • MiddleOfSentence

      NSFormattingContextMiddleOfSentence

      Указывает форматирование в течение середины предложения.

      Контекст капитализации, если символ даты или даты должен быть отформатирован с капитализацией, надлежащей в течение середины предложения.

      Соответствующее значение NSInteger, равный 5.

      Доступный в OS X v10.10 и позже.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.10 и позже.