2016-04-11 20 views
1

Metin kullanıcı girişini latin/ingilizce karakterler ve emojilere sınırlamaya çalışıyorum.Emoji ve latin karakterler için IOS NSCharacterSet

Tüm bu karakterleri içeren bir NSCharacterSet oluşturmak mümkün mü?

Giriş görünümlerimde ASCIICapable bir klavye kullanmayı denedim, ancak sonra emoji girişi alamıyorum.

+0

, bunu gerekli ve yapılan [NSCharacterSet + EmojiCharacterSet adlı bir açık kaynak projesi] (https://github.com/matthewpalmer/NSCharacterSet-EmojiCharacterSet) – matthewpalmer

cevap

3

Böyle belirli bir karakter kümesi oluşturmak için yerleşik hiçbir şey yok. Karakter aralığıyla kendiniz yapmak zorundasınız.

Emoji karakterleri esasen \ U1F300 - \ U1F6FF aralığındadır. Sanırım birkaç kişi dağınık.

Gereksinim duyduğunuz şeyi oluşturmak için NSMutableCharacterSet kullanın.

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

Teşekkür rmaddy, bu şimdiye nedir ona ihtiyacı olmak. –

1

rmaddy 'ın cevabın Swift eşdeğer bir CharacterSet aralıkları eklemek için:

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 

Ayrıca, Unicode tam listesini bulacaksınız Emoji & altında http://www.unicode.org/charts/ üzerinde emoji aralıkları Piktogramlar. Gelecekte bu geliyor herkes için

İlgili konular