2012-12-22 14 views
8

próbuję umieścić przypisać ciąg wewnątrz NSTextField, która sama jest wewnątrz NSAlert Oto mój kod:[__NSCFConstantString pointSize]: selektor nierozpoznany wysłany do 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]; 

jednak jak najszybciej [ alert runModal] nazywa moja aplikacja wywala

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

nie jestem pewien, dlaczego tak się dzieje. Wygląda na to, że jest on powiązany z łańcuchem, ponieważ zaraz po usunięciu [alert setAccessoryView: label1] lub nadaniu label1 standardowej wersji działa poprawnie. Proszę pomóż!

Odpowiedz

37

Dobrze zrobiliście. Ale zrobiłeś mały błąd. Przekazałeś NSString jako atrybut dla NSFontAttributeName, ale oczekuje on NSFont.

Spróbuj tego.

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

Hi dół wyborców! dlaczego to zrobiłeś? –

1

Powyższa odpowiedź jest absolutnie poprawna. Miałem taką samą awarię, która powodowała awarię tylko w iOS 7.0.3 & 7.0.4 i działa doskonale we wszystkich innych wersjach. Po tak wielu śledztwach dowiedziałem się, że @ "HelveticaNeue-Italic" nie jest dostępna w wersjach iOS 7.0.3 & 7.0.4, więc w powyższych wersjach znalazłem się powyżej poziomu awarii.

Mam ustalone problem z poniższym kodzie:

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