UITableViewCell内的UITextView在选择单元格时隐藏光标

时间:2012-06-15 06:27:58

标签: ios uitableview uitextview

我在UITextView内有UITableViewCell个子视图。当用户点击单元格时,我选择它,即我将背景图像切换到选定状态。 UITextView成为第一响应者,但光标被隐藏。当我禁用单元格选择时,UITextView显示没有问题的光标。

如何选择单元格并开始使用可见光标编辑UITextView? :)

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    if (selected && ![textView isFirstResponder]) {
        [textView setUserInteractionEnabled:YES];
        [textView becomeFirstResponder];
    } else {
        [textView resignFirstResponder];
        [textView setUserInteractionEnabled:NO];
    }
}

4 个答案:

答案 0 :(得分:4)

当我设置时,单元格停止隐藏光标。

cell.selectionStyle = UITableViewCellSelectionStyleNone;

但之后,单元格也停止使用selectedBackgroundView。所以我将我的图像设置为backgroundView的突出显示状态。

cell.backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"input_up.png"] highlightedImage:[UIImage imageNamed:@"input_up_act.png"]] autorelease]; 

并在setSelected中切换图像:动画:

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    if (selected && ![textView isFirstResponder]) {
        [textView setUserInteractionEnabled:YES];
        [textView becomeFirstResponder];
    } else {
        [textView resignFirstResponder];
        [textView setUserInteractionEnabled:NO];
    }

    [(UIImageView *)self.backgroundView setHighlighted:selected];
}

答案 1 :(得分:2)

你的光标没有消失也许是白色的! 尝试:[self.tableView setTintColor:[UIColor redColor]];

答案 2 :(得分:1)

您可以尝试在selected协议方法UITableViewCell中设置UITextViewDelegate的{​​{1}}属性。

如果这不起作用,请创建一个textViewDidBeginEditing:作为您单元格的子视图,并更改上述方法中的内容。

答案 3 :(得分:0)

当您选择单元格时,textView成为第一个响应者,但光标已被隐藏,您可以取消选择该单元格,然后光标将显示。