iOS UITextView 添加提示水印

實現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);

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容