コードで作成する UITextView があります。
myView = [[UITextView alloc] initWithFrame:CGRectMake(10,5,220,50)];
myView.editable = YES;
myView.font = [UIFont fontWithName:@"Helvetica" size:16];
myView.bounces = NO;
myView.delegate = self;
ヘッダーにも UIView *myView を設定し、デリゲートも設定します - UIViewController UITextViewDelegate>
ユーザーがテキストを書き込むたびにラベルを非表示にしたいのですが、0に等しいかどうかを確認し、そうでない場合は非表示にします。
問題はこの方法にあります -
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if(textView.text.length == 0)
descLabel.hidden = NO;
else
descLabel.hidden = YES;
return YES;
}
プログラムは実行されますが、最初の文字を入力するとラベルが残り、2 番目の文字を入力すると正常に動作します。それから私はそれらの2つを削除しましたが、まだ消えています! (注意:長さが0のときにラベルを非表示にしたい)が、もう一度削除を押すと、ラベルが表示されます。かなり奇妙..
UITextView でプレースホルダーの動作をしたいのですが、この問題は面倒です
ご協力いただきありがとうございます!