2012-12-22 5 views
8

ich eine Zugeschrieben Zeichenfolge in einem NSTextField zu setzen versuchen, die sich im Innern eines NSAlert ist Hier ist mein Code:[__NSCFConstantString Punkt]: Unbekannter Selektor gesendet 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]; 

jedoch so bald wie [ alert runModal] wird aufgerufen, stürzt meine app

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

Ich bin mir nicht sicher, warum das passiert. Es scheint, dass es mit der Zeichenkette zusammenhängt, denn sobald ich [alert setAccessoryView: label1] entferne oder label1 einen Standard-nstring gebe, funktioniert es gut. Bitte helfen Sie!

Antwort

37

Sie haben richtig gemacht. Aber du hast einen kleinen Fehler gemacht. Sie haben NSString als Attribut für übergeben, aber es erwartet NSFont.

Versuchen Sie es.

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

Hallo unten Wähler! Warum hast du das gemacht? –

1

Die obige Antwort ist absolut richtig. Ich hatte einen gleichen Crash, der nur in iOS 7.0.3 & 7.0.4 stürzte, und funktioniert in allen anderen Versionen perfekt. Nach so viel Nachforschungen habe ich erfahren, dass @ "HelveticaNeue-Italic" in iOS 7.0.3 & 7.0.4 Versionen nicht verfügbar ist, so dass ich in diesen Versionen über Absturz kam.

Ich habe das Problem mit folgendem Code festgelegt:

self.headerFont = [UIFont fontWithName:@"HelveticaNeue-Italic" size:16.0f]; 
if (self.headerFont == nil) { 
    self.headerFont = [UIFont fontWithName:@"HelveticaNeue" size:16.0f]; 
} 
Verwandte Themen