2016-04-11 4 views
1

Я пытаюсь ограничить ввод текста пользователем латинскими/английскими символами и эмозисом.IOS NSCharacterSet для emoji и латинских символов

Возможно ли создать NSCharacterSet, который включает в себя все эти символы?

Я попытался использовать клавиатуру типа ASCIICapable на своих входных представлениях, но тогда я не получаю emoji вход.

+0

Для тех, кто подходит к этому в будущем, мне нужно это и сделал [источник открытого проекта под названием NSCharacterSet + EmojiCharacterSet] (https://github.com/matthewpalmer/NSCharacterSet-EmojiCharacterSet) – matthewpalmer

ответ

3

Для создания такого набора символов ничего не создано. Вам придется делать это самостоятельно по диапазону символов.

Символы Emoji в основном находятся в диапазоне \ U1F300 - \ U1F6FF. Я полагаю, что некоторые другие рассеяны.

Используйте NSMutableCharacterSet, чтобы создать то, что вам нужно.

NSMutableCharacterSet *aCharacterSet = [[NSMutableCharacterSet alloc] init]; 
[aCharacterSet addCharactersInRange:NSMakeRange(0x1F300, 0x1F700 - 0x1F300)]; // Add most of the Emoji characters 
[aCharacterSet addCharactersInRange:NSMakeRange('A', 'Z'-'A'+1)]; // Add uppercase 
[aCharacterSet addCharactersInRange:NSMakeRange('a', 'z'-'a'+1)]; // Add lowercase 
+0

Благодаря rmaddy, это то, что я нужно это. –

1

Swift эквивалент ответа rmaddy «ы сложить диапазоны в CharacterSet:

var aCharacterSet = CharacterSet() 
aCharacterSet.insert(charactersIn: "\u{1F300}"..<"\u{1F700}") // Add most of the Emoji characters 
aCharacterSet.insert(charactersIn: "A"..."Z") // Add uppercase 
aCharacterSet.insert(charactersIn: "a"..."z") // Add lowercase 

Кроме того, вы найдете полный список Unicode диапазонов для смайликов на http://www.unicode.org/charts/ под Emoji & Пиктограммы.

 Смежные вопросы

  • Нет связанных вопросов^_^