Мое приложение создает и сохраняет EKEvents
в стандартной календарной базе данных, однако я обнаружил, что если я использую смайлик как «заметки» для события, это приводит к сбою при попытке прочитать событие из Календаря.UITextField - запретить пользователю вводить нестандартные символы (например, смайлики)
Я не хочу или необходимости использование смайликов в event.notes
. Я просто испытал испытания и был шокирован, когда он позволил мне сохранить это событие. (Смайлики даже появляются в самом календаре)
Поэтому я думаю, что моя проблема может быть решена одним из двух способов, ни один из которых я не смог выяснить.
1) Могу ли я отключить или скрыть пользовательскую клавиатуру? < --I'd предпочитают это решение
2) Если нет, то как я могу создать набор символов, который включает в себя все возможные символы во всех стандартных клавиатур, чтобы проверить против при принятии уверен, что пользователь не набирает смайлик?
Я попытался использовать некоторые стандартные наборы символов для проверки, например alphanumericCharacterSet
, но используя это, я не могу вводить пробелы.
Вот код, я использую до сих пор, чтобы проверить по характеру пользователь печатает:
- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (string.length == 0) {
return YES;
}
NSCharacterSet *myCharSet = [NSCharacterSet alphanumericCharacterSet];
for (int i = 0; i < [string length]; i++) {
unichar c = [string characterAtIndex:i];
if ([myCharSet characterIsMember:c]) {
return YES;
}
}
UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Invalid Input" message:@"Oops! You can't use that character." delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[av show];
return NO;
}
EDIT: Разъяснения по ошибке
Там нет ошибки, только крушение. Мое приложение сохраняет события календаря и отображает их в списке для пользователя. Пользователь может затем отметить событие как «Платный» или «Неоплаченный», после чего я добавляю строку к объекту .notes
события «Платный». Это происходит, когда я перезаряжаю таблицу, если событие оплачено, оно отображает конкретный значок пользователю. Авария происходит, когда сохраненный даже имеет смайлик как свойство .notes
, и я пытаюсь добавить .notes
.
Какая ошибка вы получаете, если в примечаниях к событию присутствует символ Эмодзи? Лучшим решением может быть решение этой проблемы. – rmaddy
@rmaddy это не ошибка, он просто не хочет этого, чтобы чистый текст был проголосован смешными значками – raceworm
@rmaddy, см. Мое редактирование. Я точно объяснил, что происходит. – jhilgert00