想要實(shí)現(xiàn)的效果:
實(shí)現(xiàn)代碼如下
#import "STTextField.h"
@interface STTextField : UITextField
@end
#import "STTextField.h"
@implementation STTextField
- (CGRect)placeholderRectForBounds:(CGRect)bounds {
CGRect inset = CGRectMake(bounds.origin.x, bounds.origin.y, bounds.size.width, bounds.size.height);
return inset;
}
- (CGRect)textRectForBounds:(CGRect)bounds {
CGRect inset = CGRectMake(bounds.origin.x, bounds.origin.y, bounds.size.width, bounds.size.height);
return inset;
}
- (CGRect)editingRectForBounds:(CGRect)bounds {
if (self.text.length > 0) {
return [super editingRectForBounds:bounds];
} else {
// 可通過(guò)默認(rèn)文案來(lái)調(diào)整inset.origin.x保證光標(biāo)在兩個(gè)字之間
CGRect inset = CGRectMake(bounds.origin.x + bounds.size.width / 2, bounds.origin.y, bounds.size.width - bounds.size.width / 2, bounds.size.height);
return inset;
}
}