En Objective-C, j'ai une catégorie pour une classe:Comment appeler la fonction d'origine de la fonction surchargée dans une catégorie?
@interface UILabel(CustomInit)
- (id)initWithCoder:(NSCoder *)coder;
@end
Ce que je fais est d'écrire une fonction d'initialisation personnalisée qui fait des choses supplémentaires, et ce que je voudrais faire, est en cette fonction d'initialisation personnalisée appelle la base initWithCoder de UILabel. Est-ce possible? Comment?
EDIT
Merci. Ok, donc mes plans sont discutables. Impossible de surcharger initWithCoder. Existe-t-il un moyen d'obtenir la même fonctionnalité (où tous les UILabels obtiennent cette étape d'initialisation ajoutée) sans surcharger initWithCoder? Ou peut-être y a-t-il un exemple de code pour le initWithCoder de UILabel que je peux simplement réécrire avec le code ajouté?
EDIT
Ok, donc d'être clair sur ce que je suis en train:
Can I embed a custom font in an iPhone application?
a une réponse dans laquelle quelqu'un ajoute manuellement une police personnalisée sur l'iPhone en utilisant le privé Fonction GraphicServices GSFontAddFromFile. J'ai essayé ce code et cela a bien fonctionné pour définir manuellement la police d'une étiquette. Toutefois, si vous essayez de définir la police dans Interface Builder, elle ne se charge pas correctement, elle descend simplement à la police système. Ce que je voulais faire était charger la police manuellement et définir la police de l'étiquette automatiquement avec la police choisie dans IB. De cette façon, je n'ai pas besoin de faire un exutoire pour chaque étiquette que je pose. Je n'ai pas non plus besoin d'écrire une sous-classe d'étiquette ridicule (qui a également été suggérée dans ce fil et fait une grande quantité de dessin personnalisé) que j'ai trouvé plutôt grotesque. Maintenant, je pourrais encore faire une sous-classe pour toutes mes étiquettes, mais il y a aussi le cas des étiquettes incorporées dans d'autres objets de l'interface utilisateur, à savoir les UIButtons. J'aimerais que les étiquettes incorporées ne soient pas non plus brisées.
Toutes les suggestions seraient super. Merci.
Quelle est cette initialisation par étiquette que vous devez faire? Peut-être pouvons-nous suggérer une alternative. –
(An aside) Ne remplacez jamais les méthodes existantes dans les classes fournies par Apple avec des catégories. Vous n'avez aucun moyen de connaître les détails de l'implémentation interne/dépendances ... – bbum