2009-11-30 15 views
9

क्या यह पता लगाने का कोई तरीका है कि आईफोन पर एक फ़ॉन्ट में यूनिकोड कैरेक्टर मौजूद है या नहीं, यह पता लगाने के लिए कि क्या चरित्र एक प्रिंट करने योग्य ग्लिफ़ पर या "लापता चरित्र" प्रतीक के लिए नक्शा करेगा या नहीं?कैसे पता लगाया जाए कि यूनिकोड कैरेक्टर लापता-प्रतीक वर्ग में मानचित्र करता है या नहीं?

उदाहरण के लिए

, अगर मैं इस स्निपेट के साथ एक यादृच्छिक Wingding चरित्र उत्पन्न करना चाहते हैं:

NSString *s = [NSString stringWithFormat:@"%C", (0x2700 + (arc4random() % 0x0100))]; 

वहाँ एक रास्ता है, तो उत्पन्न स्ट्रिंग छोटे वर्ग, या कोई वास्तविक ग्लिफ़ जब मैं के रूप में प्रस्तुत करना होगा बताने के लिए है इसे इसके साथ खींचे:

[s drawAtPoint:x withFont:[UIFont systemFontOfSize:30]]; 

धन्यवाद!

... आर

उत्तर

0

मैं किसी भी विधि है कि इस के लिए विशेष रूप की जाँच करता है के बारे में पता नहीं है, लेकिन मुझे लगता है यह यूनिकोड में एन्कोड किए गए वर्ण के प्रत्येक तालिका के लिए बनती मूल्यों के साथ एक NSDictionary स्थापित करने के लिए संभव हो जाएगा , फिर यह सुनिश्चित करने के लिए एक चेक चलाएं कि जेनरेट किया गया मान युग्मित मूल्यों में से किसी एक द्वारा निर्दिष्ट श्रेणियों के भीतर आता है।

1

NSFont में coveredCharacterSet है जो UIFont नहीं है। तो मैं कवर किया गया कैरेक्टरसेट जानकारी बनाने और इसे अपने आईफोन ऐप में रखने के लिए अपने डेस्कटॉप पीसी का उपयोग करने की सलाह दूंगा।

फोंट कि iphone पर उपलब्ध हैं की एक सूची में पाया जा सकता: http://daringfireball.net/misc/2007/07/iphone-osx-fonts

0

क्यों, इसे अपने कंप्यूटर पर उत्पन्न नहीं करता है, तो आप इसे Helvetica होना चाहिए सिस्टम फ़ॉन्ट का उपयोग कर रहे हैं और वहाँ में चरित्र नक्शे है लगभग किसी भी कार्यक्रम का फ़ॉन्ट मेनू विकल्प।

1

मैं पूरा करने के लिए कर रहा था इस का उपयोग करते हुए कोर पाठ के CTFontGetGlyphsForCharacters:

- (BOOL)isInCharSet:(unichar)character 
{ 
    CTFontRef fontRef = CTFontCreateWithName((CFStringRef)@"Arial", 0.0, NULL); 
    unichar characters[] = {character}; 
    CGGlyph glyphs[] = {}; 

    return (BOOL)CTFontGetGlyphsForCharacters(fontRef, characters, glyphs, 1); 
} 
संबंधित मुद्दे

 संबंधित मुद्दे