当用户点击textView
时,我很难弄清楚如何删除属性文本,就像你在textField
时那样。我知道如何分配属性文本,但我希望它在用户点击textView
时消失,而不是必须自己删除属性文本。
以下是我用来填充的代码:
if([self.detailItem.comments.rootBeerComment isEqual: @""] || self.detailItem.comments.rootBeerComment == nil){
NSAttributedString *string = [[NSAttributedString alloc]initWithString:@"Notes..."];
self.rootBeerNotes.attributedText = string;
}else{
self.rootBeerNotes.text = self.detailItem.comments.rootBeerComment;
}
答案 0 :(得分:1)
为了在点击textView时执行某些操作,您需要知道此事件何时发生。最简单的方法是将textView的委托设置为视图控制器,然后实现UITextViewDelegate
委托方法,该方法告诉您:
- (BOOL)textViewShouldBeginEditing:(UITextField *)textView
{
// You may need to check that it is the right textView if you have more than one.
textView.attributedText = nil;
return YES;
}
顺便说一下,你可以替换这行代码:
if([self.detailItem.comments.rootBeerComment isEqual: @""] || self.detailItem.comments.rootBeerComment == nil){
使用这个,因为空字符串的长度和nil对象的长度都返回0,所以它更短并且做同样的事情:
if([self.detailItem.comments.rootBeerComment length] == 0){
答案 1 :(得分:0)
您始终可以使用它。制作一个从第一个字符到最后一个字符的NSRange,并使用空字符串“”。
myAttributedString.replaceCharacters(范围:NSRange,带str:字符串)