OStack程序员社区-中国程序员成长平台

标题: ios - 将文本移动到 UITableViewCell 中的下一个文本字段 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 22:33
标题: ios - 将文本移动到 UITableViewCell 中的下一个文本字段

我有一个 UITableView 和多个 UITableViewCell

每个单元格都有一个UITextFiled

现在我正在向文本文件的第一行添加文本。现在我想在文本范围达到屏幕宽度时将文本移动到文本文件的第二行。

编辑:

Textfiled 委托(delegate)方法

 - (BOOL)textFieldUITextField *)textField shouldChangeCharactersInRangeNSRange)range replacementStringNSString *)string
{
    CGFloat textWidth = [textField.text sizeWithAttributes{NSFontAttributeName : textField.font}].width;
    CGFloat frameWidth = textField.frame.size.width - 11;

    if(textWidth > frameWidth) {

       //text reaches to screen width.
       [textField resignFirstResponder];

       MemoTableViewCell *nextCell = [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRowtextField.tag+1) inSection:0]];
       [nextCell.noteTextField becomeFirstResponder];

      return NO;
  }

return YES;

}

表格 View 方法:

- (NSInteger)tableViewUITableView *)tableView numberOfRowsInSectionNSInteger)section
{
    return 20;
}


- (UITableViewCell *)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)indexPath
{
     static NSString *simpleTableIdentifier = @"SimpleTableItem";

    MemoTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
          cell = [[MemoTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }

    cell.noteTextField.delegate = self;
    cell.noteTextField.tag = indexPath.row;

    return cell;
}

现在我想在上述方法返回 NO 时移动文本。

对不起,我的英语不好。我希望你能理解我的问题,如果没有,请问我。

请帮帮我。

编辑

上面的代码工作正常,但有时它会在下面一行崩溃

CGFloat textWidth = [textField.text sizeWithAttributes{NSFontAttributeName : textField.font}].width;

Warning: could not load any Objective-C class information. This will significantly reduce the quality of type information available.



Best Answer-推荐答案


试试下面的代码,可能会有所帮助:

- (BOOL)textFieldUITextField *)textField shouldChangeCharactersInRangeNSRange)range replacementString:(NSString *)string {


CGFloat textWidth = [textfield.text sizeWithAttributes{NSFontAttributeName : textfield.font}].width;
CGFloat frameWidth = textfield.frame.size.width;

    if(textWidth > frameWidth) {

       //text reaches to screen width.
       [textfield resignFirstResponder];

        /*
        //Get next TextField and Make it first responder
        [cell.YourNextTextField becomeFirstResponder]; 
        */

        return NO;
    }

    return YES;
}

关于ios - 将文本移动到 UITableViewCell 中的下一个文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40151972/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4