我是ios的新手,我在iqkeyboardmanager上工作,我想在IQKeyboardManager中访问Done按钮动作.
我正在使用IQKeyboardManager pod,用于我的swift 4.0项目.
IQKeyboardManager.sharedManager().enable = true
Run Code Online (Sandbox Code Playgroud)
pod更新后,上面的代码无法正常工作.
我已经实现了IQKeyboardManager框架,使键盘手柄更容易.它的工作非常精细,除了一件事:
UItextField
在我的应用程序中有一些控件打开UIDatePicker
代替默认键盘(例如数字键盘,小数点,ASCII能力等).
这是一个带有图形结果的代码示例:
// Create the datePicker
UIDatePicker *birthdayDatePicker = [UIDatePicker new];
[birthdayDatePicker setDatePickerMode:UIDatePickerModeDate];
// Assign the datePicker to the textField
[myTextField setInputView:birthdayDatePicker];
Run Code Online (Sandbox Code Playgroud)
我的问题是: 是否可以通过"确定"按钮处理操作以填写"日期复兴"字段?
对于那些想知道我是如何解决问题的人:
在我的.h中,我输入了IQDropDownTextField.h
:
#import "IQDropDownTextField.h"
Run Code Online (Sandbox Code Playgroud)在.h中,我将我的类型更改UITextField
为IQDropDownTextField
:
@property (weak, nonatomic) IBOutlet IQDropDownTextField *myTextField;
Run Code Online (Sandbox Code Playgroud)在Interface Builder或.xib中选择您的字段,并显示Identity Inspector:将您的字段类更改为IQDropDownTextField
.
// Set myTextField's dropDownMode to IQDropDownModeDatePicker
myTextField.dropDownMode = IQDropDownModeDatePicker;
// Create a dateFormatter
NSDateFormatter …
Run Code Online (Sandbox Code Playgroud) 目前,我用了嵌入式的容器视图中工作UITableView
,并正在使用IQKeyboardManager
CocoaPod滚动视图,所以我UITextFields
并UITextViews
没有涵盖的键盘.
我可以成功地import IQkeyboardManager
使其在其他视图中工作,但是当UITableView
它嵌入容器视图时它不起作用.
我在一个Swift项目中工作,我有几个输入字段.我为每个输入字段创建了一个自定义视图,因为我们在项目中使用了很多.
我加入IQKeyboardManager
了这个项目.它工作得很好,视图根据活动文本字段启动.
但是,不会出现"下一个/上一个"按钮.我试过在代码中设置文本字段的标签,如下所示:
slNameField.setTextField("Name", keyboardType: UIKeyboardType.NamePhonePad, image: UIImage(named: "ic_name"))
slNameField.txtField.tag = 101
slEmailField.setTextField("Email", keyboardType: UIKeyboardType.EmailAddress, image: UIImage(named: "ic_email"))
slEmailField.txtField.tag = 102
slLocationField.setTextField("City, Country", keyboardType: nil, image: UIImage(named: "ic_location"))
slLocationField.txtField.tag = 103
Run Code Online (Sandbox Code Playgroud)
以下是该项目的一些插图:
我用来IQKeyboardManager
在使用键盘输入后保持文本字段上升。
即使单击文本字段,我也不想滚动到特定视图。下面是设计的屏幕截图。我希望“标题”保留在顶部。
从他们的文档来看,有一种方法可以使导航栏保持在顶部。
我在使用键盘开始键入时使用IQKeyboardManger库滚动文本字段,但我不想显示其库中的默认工具栏.以下是我用过的代码.
override func viewDidLoad() {
super.viewDidLoad()
self.chatTextField.inputAccessoryView = [[UIView alloc] init]; //This will remove toolbar which have done button.
self.chatTextField.keyboardDistanceFromTextField = 8; //This will modify default distance between textField and keyboard. For exact value, please manually check how far your textField from the bottom of the page. Mine was 8pt.
}
Run Code Online (Sandbox Code Playgroud)
uitextfield ios swift ios-keyboard-extension iqkeyboardmanager
我正在将我的应用程序从Swift 3更新到Swift 4,迁移之后,出现了一些错误。其中之一Method 'initialize()' defines Objective-C class method 'initialize', which is not permitted by Swift
在的IQToolbar中IQKeyboardManager
,该如何解决?
我IQKeyboardManager
在我的应用中使用了图书馆。我IQKeyboardManager
通过cocoapods 安装。每个键盘上没有显示“完成”按钮。那是看不见的。
在我在AppDelegate.swift
文件中设置的代码下面。
IQKeyboardManager.shared().isEnabled = true
Run Code Online (Sandbox Code Playgroud)
要在 Swift 的视图控制器中禁用 IQKeyboardManager,您显然需要获取对实例的引用,然后禁用它。但是,我无法找到引用它的方法。我最初在 appDelegate 中导入库,它是用 Objective-C 编写的
import IQKeyboardManagerSwift
Run Code Online (Sandbox Code Playgroud)
给我错误:
没有这样的模块 IQKeyboardManagerSwift
如果我只是尝试将下面的行放在 viewDid Load 中:
IQKeyboardManager.shared().isEnabled = false
IQKeyboardManager.shared().isEnableAutoToolbar = false
Run Code Online (Sandbox Code Playgroud)
然后我得到错误
未找到 IQKeyboardManager。
如何在 Swift 中禁用特定视图控制器的 IQKeyboardManager?
ios ×9
swift ×8
iphone ×1
objective-c ×1
swift3 ×1
swift4 ×1
uitableview ×1
uitextfield ×1
xcode ×1
xcode6 ×1