【发布时间】:2016-01-24 10:11:58
【问题描述】:
我想像这样使用 UIViewController 的输入附件视图:
override func canBecomeFirstResponder() -> Bool {
return true
}
override var inputAccessoryView: UIView! {
return self.bar
}
但问题是我有一个类似视图的抽屉,当我滑动打开视图时,输入视图停留在窗口上。如何像 Slack 一样将输入视图保持在中心视图上。
我的输入视图位于底部,占据全屏(下图中红色为输入视图):
【问题讨论】:
-
如果 slack 的视图滑过,那么他们可能没有将其设置为
inputAccessoryView。他们可能只是在代码中“手动”管理其位置。 -
是的,也许。但是如果你使用 Slack,在 table view 上抬起键盘并向下滑动,一旦你点击 input view 的顶部,键盘就会开始向下滑动。这让我觉得这是一个输入视图,不是手动管理的。
-
这不只是表明他们设置了
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag或UIScrollViewKeyboardDismissModeInteractive吗? -
是的,他们也这样做,但是因为我手动管理我的“inputView”,并且一旦我到达输入视图的最顶部,键盘就不会向下滑动。一旦我到达键盘顶部,它就会向下滑动。 Slack 的行为就像一个真正的输入视图,因为只要我点击输入视图的顶部,键盘就会开始向下滑动。
-
我实际上认为他们抓住了键盘的框架并改变了它,而不是使用 UIScrollViewKeyboardDismissModeInteractive。 github.com/slackhq/SlackTextViewController/blob/…
标签: ios first-responder inputview inputaccessoryview