Sunday, June 2, 2013

UITextField drawPlaceholderInRect example in Objective C (iOS).


UITextField drawPlaceholderInRect

Draws the receiver’s placeholder text in the specified rectangle.

- (void)drawPlaceholderInRect:(CGRect)rect

Parameters
rect
The rectangle in which to draw the placeholder text.

Discussion of [UITextField drawPlaceholderInRect]
You should not call this method directly. If you want to customize the drawing behavior for the placeholder text, you can override this method to do your drawing.

By the time this method is called, the current graphics context is already configured with the default environment and text color for drawing. In your overridden method, you can configure the current context further and then invoke super to do the actual drawing or do the drawing yourself. If you do render the text yourself, you should not invoke super.

UITextField drawPlaceholderInRect example.
 @implementation CustomUITextFieldPlaceholder

- (void)drawPlaceholderInRect:(CGRect)rect {
    // Set colour and font size of placeholder text
    [[UIColor redColor] setFill];
    [[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:12]];
}

@end

Example of [UITextField drawPlaceholderInRect].
subclassing UITextField will do the work:

// CustomTextField.h
@interface CustomTextField : UITextField {
}
@end
override the methods:

@implementation
- (CGRect)placeholderRectForBounds:(CGRect)bounds {
    return CGRectMake(x,y,width,height);//Return your desired x,y position and width,height
}

- (void)drawPlaceholderInRect:(CGRect)rect {
    //draw place holder.
 [[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:12]];

}
@end

UITextField drawPlaceholderInRect example.
- (void) drawPlaceholderInRect:(CGRect)rect {

      [[UIColor redColor] setFill];
      [self.placeholder drawInRect:rect
                          withFont:self.font
                     lineBreakMode:UILineBreakModeTailTruncation
                         alignment:self.textAlignment];
    }

End of UITextField drawPlaceholderInRect example article.