Search code examples
uiviewdelegatesnsstringobjective-c-category

calling a delegate before assigning text to UILabel text property


I don't know if I have chosen right title for my question.

I have developed an app and now I want to process text before assigning text to UILabel or UIView text property.

instead of

myLabel.text = story.text

do this:

myLabel.text = [story.text substituteCharactersOfText];

substituteCharactersOfText is a method of Category I have added to NSString class

so if I have a lot of label or another views, it will be difficult or errorProne to manually call this category method. (maybe I forgot one for anotherLabel.text)

so is there anyway to call this method automatically before assigning text to UILabel.text?

I think maybe there is way in objective-c I don't aware of (maybe an special use of delegate)!!


Solution

  • Subclass UILabel and override setText:

    @implementation HALabel
    
    - (void)setText:(NSString *)text {
        [super setText:[text substituteCharactersOfText]];
    }
    
    @end