BAD_ACCESS

おもにiOS、ときどき変な電子工作、ガジェット話。

PlaceholderをTextField以外でも表示させたい!

TextFieldのPlaceholderって便利ですよね。

TextViewでも同じようにできるかと思ってたら...できない!
「Placeholder in UITextView」でGoogle先生に聞いてみると、ばっちりの回答が。
iphone - Placeholder in UITextView - Stack Overflow

UIPlaceHolderTextView.m

<Interface Builderを使う場合>

- (void)awakeFromNib
{
    [super awakeFromNib];
    [self setPlaceholder:@"placeholder"];//ここの文字列を置き換える。
    [self setPlaceholderColor:[UIColor lightGrayColor]];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:UITextViewTextDidChangeNotification object:nil];
}

<Interface Builderを使う場合>

- (id)initWithFrame:(CGRect)frame
{
    if( (self = [super initWithFrame:frame]) )
    {
        [self setPlaceholder:@"placeholder"];//ここの文字列を置き換える。
        [self setPlaceholderColor:[UIColor lightGrayColor]];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:UITextViewTextDidChangeNotification object:nil];
    }
    return self;
}

思ったとおりに表示できた!便利!