NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:timeString];
UIFont *font = [UIFont fontWithName:self.txtFieldForEndTime.font.familyName size:self.txtFieldForEndTime.font.pointSize / 2];
NSDictionary *attrs = @{
NSFontAttributeName:font,
(__bridge NSString *) kCTSuperscriptAttributeName:[string substringFromIndex:string.length - 2]
};
[attString setAttributes:attrs range:[string rangeOfString:@"PM"]];
Приведенный выше код пытается использовать суперскрипт для двух последних символов AM/PM.
Но приложение вылетает из-за сообщения -[__NSCFString _getValue:forType:]: нераспознанный селектор отправлен экземпляру.
Не могли бы вы сообщить мне, что не так с этим кодом. Если у вас есть рабочий код, который надстрочный индексирует часть NSString, сообщите мне об этом.
self.txtFieldForEndTime.font.familyName
=›self.txtFieldForEndTime.font.fontName
? Это может быть одна проблема. Другой — это значениеattrs
для ключаkCTSuperscriptAttributeName
. ОжидаетсяNSNumber
, а неNSString
- person Larme   schedule 03.09.2015kCTSuperscriptAttributeName
. Шрифт работает правильно. Тогда как бы я отображал любой символ как надстрочный? - person Krishna Kumar   schedule 03.09.2015(__bridge NSString *) kCTSuperscriptAttributeName:[string substringFromIndex:string.length - 2]
до(__bridge NSString *) kCTSuperscriptAttributeName:@(1)
или(__bridge NSString *) kCTSuperscriptAttributeName:@(-1)
, как указано в документе. - person Larme   schedule 03.09.2015