UITextView にプレースホルダーの機能を追加したいので、次のようにします。
@interface UIPlaceholderTextView : UITextView <UITextViewDelegate>
{
UILabel *placeholderLabel;
}
UITextView でテキストが変更されると、メソッドが呼び出されます。
#pragma UITextViewDelegate
-(void)textViewDidChange:(UITextView *)textView
{
if (textView.text.length==0)
{
placeholderLabel.hidden=false;
}
else
{
placeholderLabel.hidden=true;
}
}
IOS シミュレーター 6.1 では、すべて問題ありません。しかし、IOS シミュレーター 5.1 で実行したときのプログラムの内訳は、ここで問題が発生することがわかりました。
self.delegate = self;
デリゲート自体を作るのは適切ではないようです。しかし、正確な理由はわかりません。正しい方法は何ですか?