Ios 使用“拖动”关闭时,如何使inputAccessoryView保持在屏幕上?

Ios 使用“拖动”关闭时,如何使inputAccessoryView保持在屏幕上?,ios,objective-c,uiviewcontroller,inputaccessoryview,Ios,Objective C,Uiviewcontroller,Inputaccessoryview,我知道视图控制器必须是第一响应者,以便inputAccessory保持在底部。我正在使用自定义的inputView/键盘。我可以通过删除inputView,但不退出first responder,通过“完成”按钮手动关闭它。但是,当我在scrollview上启用交互式拖动时,代码会自动退出第一响应程序。那么,我如何使用交互式拖动来消除并保持我的viewcontroller作为第一响应者呢?以前有人这样做过吗?我想这可能是不可能的,我可能需要使用手势识别器进行自己的交互式拖动来消除 更多信息: 我

我知道视图控制器必须是第一响应者,以便inputAccessory保持在底部。我正在使用自定义的inputView/键盘。我可以通过删除inputView,但不退出first responder,通过“完成”按钮手动关闭它。但是,当我在scrollview上启用交互式拖动时,代码会自动退出第一响应程序。那么,我如何使用交互式拖动来消除并保持我的viewcontroller作为第一响应者呢?以前有人这样做过吗?我想这可能是不可能的,我可能需要使用手势识别器进行自己的交互式拖动来消除

更多信息: 我有一个按钮,可以在标准键盘和自定义键盘之间切换。我看到过,由于2键盘确实拒绝了通知,所以拒绝了这些通知。我原以为我可以成为keyboardDidHide方法的第一反应者,但这并不奏效,因为我无法区分手动关闭键盘和交互拖动关闭键盘的时间。这很重要,因为我不需要重新加载输入视图,也不需要在手动关闭时成为第一响应者,因为我已经处理了它


任何建议都会令人惊讶。我正试图在UIViewController级别上使用inputView和inputAccessoryView。

经过一天的努力,我终于找到了答案

使用我的viewcontroller的
canResignFirstResponder
实现了这个技巧。在
视图中将出现
I设置
BOOL responderroverride=YES

视图中将消失
我调用

responderverride=NO;
[自我辞职第一响应者]

当scrollview上的交互式拖动尝试退出FirstResponder时,
canResignFirstResponder
返回否,这将阻止我的viewcontroller退出,并保持我的输入附件保留在屏幕底部

有很多其他的代码可以重新加载输入视图,但真正的问题是如何强制控制器保持第一响应者的状态,这样我们就不会丢失输入附件视图,所以这个解决方案是可行的

override var canBecomeFirstResponder : Bool {
     get {
           retrun true
      }
}
这对我有用