我UIWebView在应用程序中有一个我正在进行的工作.看起来不错,iOS7但是当用户给出文本场焦点时iOS6,我在内置inputAccessoryView时得到了一个丑陋的色调... 显示此截图
有人知道我在哪里可以设置色调吗?将UIWebView在Interface Builder不给我一个色彩选项,但它似乎并没有做任何事情.任何关于如何iOS决定在这里使用的色调颜色的见解也会很有趣.
我试图根据消息输入工具栏模仿Apple的iMessage应用程序.Apple有一个它包含UIToolbar的输入附件视图UITextView,也是inputAccessoryView实际视图的输入附件视图.这样,工具栏始终存在,当键盘出现时,它会随键盘滑动.
在iPad上,它们似乎有一个UISplitViewController,工具栏是详细视图控制器的一部分.现在,当我进行相同的设置时,我的细节视图的输入附件工具栏会拉伸到整个宽度,因此就像键盘一样,它也会与主视图控制器重叠.另一方面,Apple以某种方式设法将输入附件限制为详细视图的约束.
我怎样才能做到这一点?
我一直在寻找简单回答的日子,但我似乎无法找到它.
如果键盘上存在附件视图,我想找到并替换附加到我的UIWebView的键盘的inputAccessoryView.我想替换它,所以我可以拥有自己的Prev和Next按钮.在swift中这样做是一个加分.
听起来很简单,但并不明显.
有谁知道如何实现composerBar和键盘出现像Facebook Messenger?
滚动tableView后,键盘从底部平滑显示,没有任何跳转.在我的类似实现中,它的工作方式如下:向上滚动后,当tableView底部偏移<0时,composerBar的输入文本字段成为第一响应者,键盘跳转到手指.是的,我用UIScrollViewKeyboardDismissModeInteractive.
Facebook如何实现这种流畅的动画?

编辑:我试着逐步解释它在Facebook Messenger中是如何工作的.
我的viewController(TableViewController)上有InputAccessoryView.然后我开始向上滚动电视(图1)

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

因此,在常见情况下,使用'UIScrollViewKeyboardDismissModeInteractive',键盘会跳到手指位置(图4)

但!在Facebook Messenger中,键盘从底部拖动,距离等于手指行进的距离.(图5)

所以,facebook messenger以某种方式控制键盘移动.问题是:如何?
我正在尝试添加一个UIView带有"完成"按钮作为文本字段的输入附件视图.
let view = UIView()
let doneButton = UIButton(type: .Custom)
doneButton.setTitle("Done", forState: .Normal)
doneButton.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(doneButton)
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:[button]-|", options: NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: nil, views: ["button":doneButton]))
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[button]|", options: NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: nil, views: ["button":doneButton]))
view.addConstraint(NSLayoutConstraint(item: view, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: doneButton, attribute: NSLayoutAttribute.Height, multiplier: 1, constant: 0)) // Even this does not work
self.emailTextField.inputAccessoryView = view
Run Code Online (Sandbox Code Playgroud)
但是,我无法在Xcode中看到视图高度设置和视图层次结构调试器/检查器中的按钮.
但是,如果我通过设置其框架添加视图,我可以看到添加的视图.我也尝试将高度约束强制设置为常数21,它打破了一些我没有添加的其他约束_UIKBAutolayoutHeightConstraint
"<NSLayoutConstraint:0x7fa3c962be50 UIView:0x7fa3c963bf60.height == UIButton:0x7fa3c963c0d0.height + 21>",
"<NSLayoutConstraint:0x7fa3c95e0a90 '_UIKBAutolayoutHeightConstraint' V:[UIView:0x7fa3c963bf60(0)]>"
Run Code Online (Sandbox Code Playgroud)
以前有人遇到过这个问题吗?
我正在尝试实现一个浮动在键盘上的 textView (如 iMessage 应用程序),我想使用它,inputAccessoryViewController以便我可以拥有视图控制器,而不仅仅是通过覆盖inputAccessoryView. 我编写了下面的代码,但在 iOS 9 中存在问题,当您点击时,textView 会消失,而键盘上的 textView 会弹出。它在 iOS 10 中运行良好。
class ViewController: UIViewController {
var textEntryController = TextEntryController.fromNIB()
override var inputAccessoryViewController: UIInputViewController? {
return self.textEntryController
}
override var canBecomeFirstResponder: Bool {
return true
}
}
Run Code Online (Sandbox Code Playgroud)
我试图找出出了什么问题,所以我重写了这两个方法inputAccessoryViewController,并inputAccessoryView在每个方法中设置了断点。
override var inputAccessoryViewController: UIInputViewController? {
return self.textEntryController //break point
}
override var inputAccessoryView: UIView? {
return self.textEntryController.view //break point
}
Run Code Online (Sandbox Code Playgroud)
这解决了 iOS 9 上 textview 消失的问题,但我认为这是不对的。这可能会破坏视图控制器层次结构。
观察:在 iOS 9 和 iOS …
我有一个自定义视图,用于inputAccessoryView我的tableViewController.
位于导航控制器内部的tableViewControllerisa 内部。tabBarViewController
我设法使自定义视图正确显示为inputAccessoryView,出现在底部,并且当聚焦时它会随键盘一起上升。
我的问题是它隐藏了我的tabBar,我搜索了但除了一个 2 年前未回答的问题之外找不到任何东西。我希望我的视图出现在 上方tabBar,类似于播放歌曲时的音乐应用程序,歌曲和播放按钮以及下一个按钮出现在上方而tabBar不是隐藏它。
使用 swift 4.2、Xcode 10.1、iOS 11 目标,在 iOS 12.1 和 12.1.1 上进行测试
当我的屏幕上的 InputAccessoryView 具有没有 nativeID 的组件(因此即使未显示键盘,它也会不断显示)并且我打开和关闭 Modal (反应本机模式)时,InputAccessoryView 会从屏幕上消失,并带有该组件。我不知道为什么会发生这种情况,也不知道如何将此 InputAccessoryView 保留在屏幕上。
这是重现它的代码:
import * as React from 'react';
import { View, ScrollView, AppRegistry, TextInput, InputAccessoryView, Button } from 'react-native';
import {Modal, Text, TouchableHighlight, Alert} from 'react-native';
import Constants from 'expo-constants';
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {text: 'Placeholder Text', modalVisible: false,};
}
setModalVisible(visible) {
this.setState({modalVisible: visible});
}
render() {
return (
<View style={{flex:1}}>
<Modal
animationType="slide"
transparent={false}
visible={this.state.modalVisible}
onRequestClose={() => {
Alert.alert('Modal has been closed.');
}}> …Run Code Online (Sandbox Code Playgroud) 在我们的 iOS / iPhone 应用程序之一中,我们需要在注册过程中显示用户配置的电子邮件地址作为建议。有多个应用程序将电子邮件地址显示为键盘输入附件视图中的固定按钮。以 Yelp 应用程序为例(配备 iOS 13.4 的 iPhone 8)
我无法弄清楚如何使用内置方法启用此功能。我尝试将 textContentType、keyboardType 和 auto CorrectionType 设置为正确的值,如我能找到的有关此主题的其他堆栈溢出文章中所述。
这是我的代码
override func viewDidLoad() {
super.viewDidLoad()
let email = UITextField(frame: CGRect(x: 10, y: 60, width: 300, height: 40))
email.placeholder = "Enter email address here"
email.font = UIFont.systemFont(ofSize: 15)
email.borderStyle = UITextField.BorderStyle.roundedRect
email.clearButtonMode = UITextField.ViewMode.whileEditing
email.contentVerticalAlignment = UIControl.ContentVerticalAlignment.center
email.returnKeyType = .continue
email.keyboardType = .emailAddress
email.textContentType = .emailAddress
email.autocorrectionType = .yes
email.autocapitalizationType = .none
view.addSubview(email)
}
Run Code Online (Sandbox Code Playgroud)
这是我在运行 Yelp 应用程序时在运行 iOS 13.4 的同一台 iPhone 8 …
我在键盘上方添加了一个工具栏以显示完成按钮以关闭键盘。我已经在我的登录屏幕上添加了它。当键盘显示并且我点击保存的密码图标以选择保存的密码时,键盘会隐藏但工具栏不会隐藏。工具栏位于屏幕底部,然后在键盘再次显示时随键盘一起向上移动。看起来很糟糕。
如何修复它以便工具栏不会自行显示而仅使用键盘显示/隐藏?
override func viewDidLoad() {
super.viewDidLoad()
self.emailTextField.addDoneButton(title: "Done", target: self, selector: #selector(tapDone(sender:)))
self.passwordTextField.addDoneButton(title: "Done", target: self, selector: #selector(tapDone(sender:)))
}
@objc func tapDone(sender: Any) {
self.view.endEditing(true)
}
extension UITextField {
// Add done button above keyboard
func addDoneButton(title: String, target: Any, selector: Selector) {
let toolBar = UIToolbar(frame: CGRect(origin: .zero, size: CGSize(width: UIScreen.main.bounds.size.width, height: 44.0)))
let flexible = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let barButton = UIBarButtonItem(title: title, style: .plain, target: target, action: selector)
barButton.setTitleTextAttributes([NSAttributedString.Key.font : UIFont.main, NSAttributedString.Key.foregroundColor : …Run Code Online (Sandbox Code Playgroud) ios ×10
swift ×6
objective-c ×3
keyboard ×2
uiwebview ×2
facebook ×1
ios10 ×1
ios9 ×1
iphone ×1
react-native ×1
uitabbar ×1
uitextfield ×1
uitoolbar ×1