【问题标题】:How to set selection in UITextView?如何在 UITextView 中设置选择?
【发布时间】:2013-09-04 11:08:08
【问题描述】:

我有一个UITextView,它位于UITableViewCell 内。要选择UITextView 中的内容,我将使用以下代码。

[UITextView select:self];
[UITextView setSelectedRange:NSMakeRange(start,length)];

一旦UITableView 被加载,下面的方法就会被调用

  1. numberOfRowsInSection:(NSInteger)section
  2. cellForRowAtIndexPath:(NSIndexPath *)indexPath
  3. heightForRowAtIndexPath:(NSIndexPath *)indexPath

我的问题是,我应该把这段代码放在哪里才能让UITextView 得到关注。

感谢您的回答。

【问题讨论】:

  • 调用 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 通过传递 indexPath...然后在这个方法中做你的事情。

标签: ios uitableview uitextview


【解决方案1】:

您应该将代码放在viewDidAppear 方法中。首先,将目标单元格滚动到视图中以使其可见:

scrollToRowAtIndexPath:atScrollPosition:animated:

然后,获取要引导输入的单元格:

cellForRowAtIndexPath:

现在将单元格转换为您类型的单元格,抓住它的UITextView,进行选择,最后赋予它焦点。

【讨论】:

    【解决方案2】:

    确保你已经实现了

    <UITextFieldDelegate>
    

    然后会调用下面的方法

    -(void) textFieldDidEndEditing:(UITextField *)textField {
    
    }
    
    -(void) textFieldDidBeginEditing:(UITextField *)textField {
    
    }
    

    但你必须设置

    textFiled.delegate = self;
    

    【讨论】:

      【解决方案3】:

      如果我正确理解了您的问题,

      如果您想将 textView 集中在启动时,则需要将代码放在 cellForRowAtIndexPath:(NSIndexPath *)indexPath 中,因为您将 UITextView 添加到 UITableViewCell 并且 tableView 单元格在该 dataSource 方法中创建/重用。

      如果你想让它专注于点击行然后使用

      - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
      

      希望这会有所帮助。

      【讨论】:

      • 感谢您的信息。我的目标是在加载文本视图后将其聚焦。而且,当行被点击时不是。
      • 那你就可以在cellForRowAtIndexPath:委托方法里面了
      猜你喜欢
      • 1970-01-01
      • 2016-03-05
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      • 2012-04-18
      相关资源
      最近更新 更多