gpt4 book ai didi

ios - 使用 [self endEditing :YES] 隐藏 UITextView 后键盘不显示

转载 作者:行者123 更新时间:2023-11-29 05:30:25 27 4
gpt4 key购买 nike

我有一个 UITextView,它是使用下面的方法在 viewDidLoad 上以编程方式创建的。调用 [_answerTextViewBecomeFirstResponder] 后,键盘立即成功显示。如果用户输入 return(\n) 字符则隐藏。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[self endEditing:YES];
return NO;
}
return YES;
}

在上面的代码隐藏键盘后,我无法再通过再次点击 UITextView 将其恢复。

我尝试通过在父 UIView 的 Tap 事件上调用 [_answerTextViewBecomeFirstResponder] 来显示键盘,并且它有效。但这不是我想要的。

UITextView是通过下面的方法创建的;

-(UITextView*)createSurveyTextView{
_answerTextView = [[UITextView alloc]initWithFrame:CGRectMake(0, 0, _optionsStackView.frame.size.width, 200)];
_answerTextView.keyboardType = UIKeyboardTypeDefault;
_answerTextView.text = @"";
_answerTextView.editable = true;
_answerTextView.selectable = true;
_answerTextView.delegate = self;
[_answerTextView becomeFirstResponder];

_answerTextView.backgroundColor = [UIColor whiteColor];
_answerTextView.textColor = [UIColor blackColor];
_answerTextView.layer.cornerRadius = 5;
[_optionsStackView addSubview:_answerTextView];

_answerTextView.font = [UIFont systemFontOfSize:20];
[_answerTextView setReturnKeyType:UIReturnKeyDone];
[_optionsStackView bringSubviewToFront:_answerTextView];
[self bringSubviewToFront:_answerTextView];
[_answerTextView setUserInteractionEnabled:true];

UITapGestureRecognizer *mainViewTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTextViewTap:)];

UITapGestureRecognizer *tap2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap2:)];

[_answerTextView addGestureRecognizer:mainViewTap];
[self addGestureRecognizer:tap2];

return _answerTextView;
}

我希望 UITextView 在用户点击它自己时简单地显示键盘。我错过了什么?

编辑:我在另一个 View 中有相同的来源,但那里一切正常。唯一的区别是,这里的 UITextView 是以编程方式创建的。

编辑2:我成功了。 UITextView 作为子项添加的 _optionsStackView 是 UIStackView。我尝试将 _answerTextView 添加到父 UIView 中,现在一切正常。 UIStackView 会出现什么问题?

最佳答案

你的代码中的问题很奇怪。你可以解释为什么要使用 UITapGestureRecognizer 来处理这个 UITextView 控件。你认为这会导致冲突吗?

我从一开始就发现你的问题,但我创建了新项目来确保。所以我确认 UITextView 本身已经有目标。而且你不能添加 UITapGestureRecognizer。

关于ios - 使用 [self endEditing :YES] 隐藏 UITextView 后键盘不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57649313/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com