问题标签 [inputaccessoryview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
982 浏览

ios - Facebook 和键盘动画管理

有谁知道如何实现在 Facebook Messenger 中出现的 composerBar 和键盘?

向上滚动 tableView 后,从底部平滑地出现一个键盘,没有任何跳跃。在我的类似实现中,它的工作原理如下:向上滚动后,当 tableView 底部偏移 < 0 时,composerBar 的输入文本字段成为第一响应者,键盘跳转到手指。是的,我使用UIScrollViewKeyboardDismissModeInteractive.

Facebook 是如何实现这种流畅的动画的?

键盘

编辑:我尝试逐步解释它在 Facebook Messenger 中的工作原理。

我的 viewController (TableViewController) 上有 InputAccessoryView。然后我开始向上滚动电视(图 1)

在此处输入图像描述

然后,如果底部插图变得超过某个值(例如 10)(图 2),我将 firstResponder 设置为 inputTextField(图 3)

在此处输入图像描述 在此处输入图像描述

因此,在常见情况下,使用“UIScrollViewKeyboardDismissModeInteractive”,键盘会跳转到手指位置(图 4) 在此处输入图像描述

但!在 Facebook Messenger 中,键盘从底部拖动的距离等于手指移动的距离。(图五)

在此处输入图像描述

因此,facebook messenger 以某种方式控制键盘移动。问题是:如何??

0 投票
2 回答
525 浏览

ios - 没有为 UITextField 正确添加 inputAccessoryView

inputAccessoryView聊天应用程序有一个要求。

当我添加inputAccessoryViewUITextField. UIButton该视图已inputAccessoryView完全设置,但文本字段未成为第一响应者。

(注:超级视图textfield是viewText。)

提前致谢。

0 投票
1 回答
435 浏览

swift - 创建后在 UITextView 的 inputAccessoryView 中更改 UIBarButtonItem 的按钮标题?

我创建了一个inputAccessoryViewfor UITextViewin viewDidLoad

var keyBoardToolBar: UIToolbar = UIToolbar(frame: CGRectMake(0, 0, self.view.frame.size.width, 50)) keyBoardToolBar.barStyle = UIBarStyle.Default

我想更改firstButton其他功能中的按钮文本(之后viewDidLoad)。那我该怎么办?谢谢!

0 投票
1 回答
657 浏览

ios - inputAccessoryView 无法正常工作或格式化

我正在datepicker为 aUITextFieldUIToolbar. 我希望能够关闭accessoryView,但它没有按应有的方式运行。尽管我按下了Done按钮,但没有调用操作方法,并且工具栏格式不是我想要的颜色。

[UIColor defaultAppColor]应该是红色的阴影,它没有出现在任何地方。

我究竟做错了什么?

0 投票
2 回答
10788 浏览

ios - 如何增加 inputAccessoryView 的高度

我已经花了几天时间解决这个问题。

我有一个inputAccessoryView由一个UIView包含一个textView和两个按钮组成的。的行为与inputAccessoryView预期的一样,并且在除一种情况外的所有情况下都可以正常工作。

当 textView 的高度增加时,我试图将高度增加inputAccessoryView相同的量。当我重新定义 in 的高度时,inputAccessoryViewtextViewDidChange键盘inputAccessoryView上方而不是向上增加高度。

我尝试了 SO 的许多不同建议,但没有任何效果。我想这是自动添加NSLayoutConstraint的,inputAccessoryView但我不知道如何在 swift 和 iOS 8.3 中更改该值。

添加

对上面的代码有帮助,并且 inputAccessoryView 的高度正确地向上增加,但是我无法同时满足多个约束的约束,并且很难识别违规者。此外,我还得到了一个奇怪的效果,即 textView 在每第二个新行实例的下方创建额外的空间。

谢谢。

0 投票
1 回答
573 浏览

ios - Swift:inputAccessoryView 在调用时显示 UIToolbar 的空白白屏

我正在尝试添加UIToolbar到我的键盘inputAccessoryView,但是一旦用户点击UITextField我得到一个空白的白色屏幕或加载白色视图,如果我把它放进去viewDidLoad()。我尝试了一些stackoverflow QA,但似乎没有一个对我有用。我也在用removeFromSuperview()方法做这个。

初始化:

分配 UIToolbarUITextField:此代码在加载时会导致空白视图。

WITHOUT removeFromSuperView():我收到以下错误,这是有道理的。

我遵循了一些 Stackoverflow QA(但没有结果):

如何设置视图:
在此处输入图像描述

0 投票
0 回答
926 浏览

ios - Swift:根据子视图 UITextView 多行调整 inputAccessoryView 高度

我正在尝试调整视图内部的inputAccessoryView高度,就像 iOS Native Message App一样。我可以调整 UITextView 的高度,但不能根据行来改变高度。这在Swift中怎么可能?UITextViewinputAccessoryViewinputAccessoryViewUITextView

UITextView 高度调整:

我已经阅读了堆栈溢出中的一些 QA,但似乎没有一个对我有用,我尝试了autoresizingMask [Flexible Hight]QA1QA2

当前情况: UITextView 调整高度,但不是输入附件。

截屏: 在此处输入图像描述

0 投票
1 回答
575 浏览

ios - InputAccessoryView 的 viewWillDisappear:iOS 9 早期调用的方法

我在 iOS 9 中遇到了一个非常不幸的错误。似乎当您设置 a 时UITextField.inputAccessoryView,该视图viewWillDisappear:viewDidDisappear:方法被过早地调用(就在键盘完成动画时)。

我已经包含了一个 gif 来演示这个问题。当视图变为红色时,它的viewWillDisappear:方法已被调用。奇怪的是,当您关闭键盘viewWillDisappear:viewDidDisappear:再次调用时。但是,viewWillAppear:只调用一次。

有没有人遇到过类似的问题?我使用viewWillDisappear:andviewDidDisappear:来关闭控制器,显然提前调用会导致不需要的行为。

注意:下面是我如何创建和设置附件视图。AccessoryViewController.m 中没有什么值得注意的。在一个干净的项目中重现了这个问题。它在 iOS 8 上不存在。

在此处输入图像描述

0 投票
0 回答
337 浏览

ios - 显示为表单的 ViewController 上的 iPad 输入附件视图

我已经在这个问题上搜索了一段时间,但我似乎无法找到答案。我希望在 iPad 上作为表单显示的视图控制器上使用输入附件视图。我目前已经实现了运行良好的 ALTextInputBar,但我的问题是附件视图显示为全屏宽度。我只想将输入附件应用于显示的模态 VC。就像 facebook 在下面的 iPad 应用程序中实现的一样。

在此处输入图像描述

所以我的commentsVC代码有以下方法

然后我在它自己的方法中配置 textInputbar 设置左右按钮等。这一切都很完美,它只是想采用与上图相同的方法。

我尝试过但效果不佳的一种方法是将commentsVc 的tablefooterview 设置为等于messageInput。尽管这是非常错误的,而且不是正确的方法。

0 投票
1 回答
512 浏览

inputaccessoryview - 调用“reloadInputViews”后 inputAccessoryView 不会自动出现

首先,我将 UIView 子类化为 MyTextEditorView 以覆盖它的 inputAccessoryView 作为读写属性。

@property (retain, readwrite) UIView *inputAccessoryView;

我将 UIInputView 初始化为显示视图,然后添加一个 UIView 作为子视图;

而且我已经覆盖了 canBecomeFirstResponder 以返回 YES;</p>

当我第一次在我的 viewController1 中初始化 MyTextEditorView 并使其成为第一响应者时,inputAccessoryView 会自动出现。但是当我从这个 viewController1 推送另一个 viewController2 并返回 viewController1 时,inputAccessoryView 在成为第一响应者后不会自动出现。

但是,当我添加如下代码时:

之后,无论如何,这个inputAccessoryView都可以自动出现。但这让我很困惑,任何人都可以帮我提出为什么inputAccessoryView不能自动出现?提前谢谢!