0

当用户单击 a 时,我无法弄清楚如何删除属性文本textView,就像您在 a 上所做的那样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; 
        }
4

2 回答 2

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){
于 2013-06-26T03:25:04.063 回答
0

您可以随时使用它。创建一个从第一个字符到最后一个字符的 NSRange,并使用空字符串“”。

myAttributedString.replaceCharacters(范围内:NSRange,带 str:字符串)

于 2019-12-10T19:33:16.013 回答