【问题标题】:Adding default text to UITextView将默认文本添加到 UITextView
【发布时间】:2014-02-02 01:02:54
【问题描述】:

我想知道如何在 UITextView 中显示默认提示。如果我希望用户在文本视图中键入描述,则 UITextView 可以在其中打印“描述”,当用户开始键入时,它就会消失。

【问题讨论】:

  • UITextView 还是 UITextField?你在你的问题中都使用了。 UITextField 有 placeholderText 可以满足您的需求。
  • 对不起,UITextField @sosborn

标签: ios text uitextview


【解决方案1】:

对于UITextField,有placeholderText 属性,它将显示一个灰色的文本,一旦用户开始输入,该文本就会被删除。

对于UITextView,您可以使用自定义实现,例如SZTextView,它实现了占位符文本的类似功能。

【讨论】:

  • 占位符是要走的路。我忘记了物业的名称。
  • 设置 textField.text = nil 如果你想要默认行为(如果文本之前更改过并且你希望光标位于 placeHolderText 的开头)
【解决方案2】:

将第三方 uitextview 用于占位符属性不是一个明智的主意。 按照这些步骤,您将实现您所需要的-

    set- textview.textcolor=[uicolor greycolor];
    textview.text=@"Your initial placeholder text";

现在在-textViewShouldBeginEditing 中写下这几行代码-

    if(textview.color==[uicolor greycolor]){
         textview.color=[uicolor blackcolor];
         textview.text=@"";

    }

干杯。

【讨论】:

  • 这仅在您不允许用户更改文本颜色的情况下有效(就像您允许属性字符串一样)。
  • @sosborn 很到位。请参阅下面的解决方案来解决此问题。
【解决方案3】:

@svmrajesh 的以下解决方案不完整。您仍然需要实现自动删除功能,以便在用户选择 textView 后立即删除默认文本。

在我的实现中,我最初将 UITextView 中的文本设置为 lightGrayColor,使其看起来像默认文本

[textView setTextColor:[UIColor lightGrayColor]];  

然后在头文件中我实现 UITextViewDelegate。

@interface YourViewController <UITextViewDelegate>

然后我将 UITextView 委托设置为 self。

[textView setDelegate:self];

然后我简单地实现了以下委托方法,当用户选择 textView 开始输入他们的文本时会触发该方法。它做的第一件事是检查文本颜色是否仍设置为浅灰色。

如果是,则仍显示默认文本,因此将其删除并将 textColor 设置为黑色。这个简单的解决方案对我很有效。

-(void)textViewDidBeginEditing:(UITextView *)textView
{
   if(textView.textColor == [UIColor lightGrayColor])
   {
    textView.textColor = [UIColor blackColor];
    textView.text = @"";
   }
}

【讨论】:

    【解决方案4】:

    试试这个....

    对于 UITextView:

    UITextView *myUITextView = [[UITextView alloc] init];
    myUITextView.delegate = self;
    myUITextView.text = @"placeholder text here...";
    

    对于 UITextField:

    UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 150, 200)];
    textField.placeholderText = @"Enter your text here";
    [self.view addSubview textField];
    

    【讨论】:

    • 你的 UITextView 实现的问题是占位符文本就像实际的用户输入文本一样。您或用户在开始使用 textview 时必须删除该文本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多