【问题标题】:Set keyboard on screen在屏幕上设置键盘
【发布时间】:2013-09-22 21:16:08
【问题描述】:

除了使用

之外,还有什么方法可以在加载视图时将键盘设置为在屏幕上
[textView becomeFirstResponder];

我需要这个,因为我希望用户看到占位符文本,即使键盘已经固定在屏幕上。

【问题讨论】:

  • 如何为 textView 显示占位符文本?
  • 我将默认文本设置为类似于@"Enter your text here",然后在用户开始输入时通过调用- (void)textViewDidBeginEditing:(UITextView *)textView 将其删除

标签: ios xcode keyboard uitextview


【解决方案1】:

使用下面的代码

- (void)viewDidLoad
{
     [Super viewDidLoad];
     textView = [ [UITextview alloc]initwithFrame:frame];// Customise TextView
     textview.text = @"Enter your text here";
     [textview becomeFirstResponder];
     [self.view addSubview:textview];
}

这可能对你有帮助

【讨论】:

    【解决方案2】:

    根据您的评论,当 textView 刚开始编辑时,不要隐藏占位符文本。相反,您应该使用UITextView 的委托方法shouldChangeTextInRange:replacementText: 来计算textView 的文本长度,如果为零,则显示您的占位符字符串,否则不显示。

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
    {
           NSString* txt = [textView.text stringByReplacingCharactersInRange:range withString:text];
           if([txt length] == 0)
           // Show your place holder text
           else   
           // Hide your place holder text
    }
    

    【讨论】:

    • 我认为这不是一个好主意,因为我使用的是[textView.text stringByReplacingCharactersInRange:range withString:text]; 您提供的代码会导致我的应用程序崩溃。我还要输入一个文本,它会将占位符附加到我刚刚输入的文本中。
    • 如果您要附加到原始占位符文本,您可以检查原始占位符的长度而不是零。此外,您的评论说这样的话“我将默认文本设置为@”在此处输入您的文本“然后在用户开始输入时将其删除.....”所以基本上我回答了这个问题。记住删除这个词:)
    • 感谢您的回答,非常感谢您的帮助。但我最终使用UITextView 的子类来拥有占位符属性。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 2012-03-07
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多