2017-08-25 1 views
0

Selon la documentation, les vues du sélecteur préfèrent utiliser attributedTitleForRow sur titleForRow. Si les rendements préférés sont nuls, la vue du sélecteur revient à titleForRow.Pourquoi attributeTitleForRow n'est pas appelé avec un UIPickerView?

J'implémente les deux méthodes, et attributedTitleForRow ne reçoit jamais d'appel. Même lorsque titleForRow renvoie zéro et attributedTitleForRow renvoie un NSAttributedString, il n'est pas appelé. Cependant, titleForRow est toujours appelé.

Voici ce que j'ai:

- (NSString *)pickerView:(UIPickerView *)pickerView 
      titleForRow:(NSInteger)row 
      forComponent:(NSInteger)component { 
    return @"Hello"; 
} 

- (NSAttributedString *)pickerView:(UIPickerView *)pickerView 
      attributedTitleForRow:(NSInteger)row 
         forComponent:(NSInteger)component { 
    return [[NSAttributedString alloc] initWithString:@"World"]; 
} 
+1

Si vous implémentez uniquement pickerView (_: attributeTitleForRow: forComponent :), est-il appelé? – 3stud1ant3

+1

cochez cette https://stackoverflow.com/questions/18945119/uipickerview-nsattributedstring-not-available-in-ios-7 –

+0

@ user1000 Non, toujours pas appelé, mais viewForRow est - on dirait que je vais devoir Va dans cette direction. – ArielSD

Répondre

0

Je ne vois pas que la méthode de délégué viewForRow a également été appelé. Si cette méthode est appelée, ni titleForRow ni attributedTitleForRow ne sera exécuté.