2010-01-25 4 views
6

Je suis perplexe (et probablement aveugle à quelque chose d'incroyablement évident). J'ai un UITableView, avec lequel je veux faire des choses terriblement normales, comme le texte d'affichage dans chaque rangée. Pour ce faire, j'ai implémenté la méthode déléguée habituelle tableView:cellForRowAtIndexPath:. Ceci est appelé comme prévu. Selon les docs, je suis supposé créer un objet UILabel et le définir comme la propriété textLabel sur la nouvelle UITableCell. Mais je plante avec un sélecteur non reconnu pour setTextLabel: - le compilateur m'avertit aussi bien que ce n'est pas là. La méthode déconseillée setText: est présente et fonctionne bien (avec avertissement). Je crois vraiment à la construction contre les bibliothèques 3.0 (je ne suis pas un choix dans le menu déroulant d'autres cibles. Je suis perplexe. Qu'est-ce que je manque?Pourquoi mon UITableViewCell n'a-t-il pas de propriété textLabel?

Merci.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell * cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease]; 
    UILabel * label = [[[UILabel alloc] init] autorelease]; 
    [label setText:@"Foo."]; 
    [cell setTextLabel:label]; // BOOM. 
    return cell; 
} 

Répondre

18

Le Textlabel la propriété est marquée en lecture seule, vous deviez utiliser

cell.textLabel.text = @ "du texte";..

+0

D'oh. Merci... –

0

Vous pouvez utiliser cell.textlabe l.text = [NSString StringWithFormat: @ "% d", votre lettre];

Questions connexes