gpt4 book ai didi

ios - inputAccessoryView 中的 UITextView 不会 resignFirstResponder

转载 作者:可可西里 更新时间:2023-11-01 03:34:28 39 4
gpt4 key购买 nike

我有一个 UIViewController View ,它有一个 UITextField 作为 subview 。文本字段在 UIControlEventEditingDidBegin 上实现一个事件。此事件设置文本字段的 inputAccessoryView 并在 View Controller 的 View 上添加“阴影” View 以阻止与 View 的交互。

inputAccessoryView 是一个 UIView,带有一个 UITextView 作为 subview 。当键盘显示时,UITextView 被设置为 firstResponder(在 UIKeyboardDidShowNotification 上注册)。

当触摸“阴影” View 时,我调用以下方法:

-(void)dismissKeyboard
{
self.dimScreenView.alpha = 0.0f;
self.writingView.txtView.text = @"";

[self.writingView.txtView resignFirstResponder];
}

但触摸阴影 View 时键盘不会消失。我试过调用 [self.writingView.txtWritingField endEditing:YES][self.writingView endEditing:YES],但我无法让它工作。

inputAccessoryView 有一个 subview ,即 firstResponder 时,我是否应该做一些特殊的事情让键盘消失?

更新:

事实证明,UITextViewUITextField 都在 isFirstResponder 属性上返回 NO,即使我不调用 resignFirstResponder。当键盘仍然存在时,怎么可能没有 TextView 是 firstResponder

最佳答案

如@malex 所说,在 [self.writingView.txtView resignFirstResponder]; 之后,您的 UITextField 再次成为第一响应者。所以你应该添加代码让 UITextField 也退出第一响应者:

-(void)dismissKeyboard
{
self.dimScreenView.alpha = 0.0f;
self.writingView.txtView.text = @"";

[self.writingView.txtView resignFirstResponder];
[yourTextField resignFirstResponder];
}

关于ios - inputAccessoryView 中的 UITextView 不会 resignFirstResponder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21522536/

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