2012-12-22 18 views
8

मैं एक NSTextField है, जो खुद एक NSAlert यहाँ अंदर है अंदर एक जिम्मेदार ठहराया स्ट्रिंग डाल करने के लिए कोशिश कर रहा हूँ मेरी कोड है भेजा:[__NSCFConstantString pointSize]: गैर मान्यता प्राप्त चयनकर्ता instanc को

NSTextField *label1 = [[NSTextField alloc]initWithFrame:NSMakeRect(0, 23, 50, 20)]; 
[label1 setEditable:FALSE]; 
[label1 setAllowsEditingTextAttributes:TRUE]; 
[label1 setBezeled:FALSE]; 
label1.backgroundColor = [NSColor clearColor]; 
NSString *login = @"Username"; 
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:login]; 
NSString *boldFontName = [[NSFont boldSystemFontOfSize:12] fontName]; 
[attrString beginEditing]; 
NSRange ran = NSMakeRange(0, 8); 
[attrString addAttribute:NSFontAttributeName 
        value:boldFontName 
        range:ran]; 

[attrString endEditing]; 
NSLog(@"%@",attrString); 
[label1 setAttributedStringValue:attrString]; 
[alert setAccessoryView:label1]; 
[alert runModal]; 

हालांकि, जैसे ही [ अलर्ट रन मॉडल] कहा जाता है, मेरा ऐप

"[__NSCFConstantString pointSize]: unrecognized selector sent to instance 0x7fff74035bb0" 

मुझे यकीन नहीं है कि यह क्यों हो रहा है। ऐसा प्रतीत होता है कि यह स्ट्रिंग से संबंधित है, क्योंकि जैसे ही मैं [चेतावनी सेटएक्शरी व्यू: लेबल 1] हटा देता हूं या लेबल 1 को मानक एनएसस्ट्रिंग देता हूं, यह ठीक काम करता है। कृपया सहायता कीजिए!

उत्तर

37

आपने सही किया है। लेकिन आपने एक छोटी सी गलती की। आपने NSFontAttributeName के लिए एक विशेषता के रूप में NSString पारित किया है, लेकिन यह NSFont की अपेक्षा करता है।

इसे आजमाएं।

NSFont *boldFontName = [NSFont boldSystemFontOfSize:12]; 
[attrString beginEditing]; 
NSRange ran = NSMakeRange(0, 8); 
[attrString addAttribute:NSFontAttributeName 
        value:boldFontName 
        range:ran]; 
+0

हाय नीचे मतदाता! तुमने ऐसा क्यों किया? –

1

उपर्युक्त उत्तर बिल्कुल सही है। मेरे पास एक ही क्रैश था जो आईओएस 7.0.3 & 7.0.4 में क्रैश करने के लिए उपयोग किया जाता था, और सभी अन्य संस्करणों में पूरी तरह से काम करता है। इतनी सारी जांच के बाद, मुझे पता चला कि आईओएस 7.0.3 & 7.0.4 संस्करणों में @ "हेल्वेतिका न्यूयू-इटालिक" उपलब्ध नहीं है, ताकि मैं उन संस्करणों में दुर्घटनाग्रस्त हो सकूं।

मैं नीचे दिए गए कोड के साथ इस मुद्दे तय कर दी है:

self.headerFont = [UIFont fontWithName:@"HelveticaNeue-Italic" size:16.0f]; 
if (self.headerFont == nil) { 
    self.headerFont = [UIFont fontWithName:@"HelveticaNeue" size:16.0f]; 
} 
संबंधित मुद्दे