美文网首页
iOS UITextView 添加提示水印

iOS UITextView 添加提示水印

作者: 挡不住的狮子 | 来源:发表于2017-02-13 21:25 被阅读0次

实现UITextView和UITextField相同效果的水印提示,可根据自己要求更改

1、定义textview的时候设置其属性:

textView.textColor=[UIColor lightGrayColor];//设置提示内容颜色

textView.text=NSLocalizedString(@"InputReason", nil);//提示语

textView.selectedRange=NSMakeRange(0,0) ;//光标起始位置

textView.delegate=self;代理

2、- (void)textViewDidChangeSelection:(UITextView *)textView

{

if (textView.textColor==[UIColor lightGrayColor]

&&[textView.textisEqualToString:NSLocalizedString(@"InputReason", nil)]

)//如果是提示内容,光标放置开始位置

{

NSRange range;

range.location = 0;

range.length = 0;

textView.selectedRange = range;

}elseif(textView.textColor==[UIColorlightGrayColor])//中文输入键盘

{

NSString*placeholder=NSLocalizedString(@"InputReason", nil);

textView.textColor=[UIColorblackColor];

textView.text=[textView.textsubstringWithRange:NSMakeRange(0, textView.text.length-placeholder.length)];

}

}

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text

{

if (![text isEqualToString:@""]&&textView.textColor==[UIColor lightGrayColor])//如果不是delete响应,当前是提示信息,修改其属性

{

textView.text=@"";//置空

textView.textColor=[UIColor blackColor];

}

if ([text isEqualToString:@"\n"])//回车事件

{

if ([textView.text isEqualToString:@""])//如果直接回车,显示提示内容

{

textView.textColor=[UIColor lightGrayColor];

textView.text=NSLocalizedString(@"InputReason", nil);

}

[textView resignFirstResponder];//隐藏键盘

return NO;

}

return YES;

}

- (void)textViewDidChange:(UITextView *)textView

{

if ([textView.text isEqualToString:@""])

{

textView.textColor=[UIColor lightGrayColor];

textView.text=NSLocalizedString(@"InputReason", nil);

}

}

相关文章

网友评论

      本文标题:iOS UITextView 添加提示水印

      本文链接:https://www.haomeiwen.com/subject/klvtwttx.html