7

我正在一个 Swift 项目中工作,我有几个输入字段。我为每个输入字段制作了一个自定义视图,因为我们在项目中经常使用它们。

我添加IQKeyboardManager到项目中。它工作得非常好,视图会根据活动文本字段启动。

但是,不会出现 Next/Previous 按钮。我试过在这样的代码中设置文本字段的标签:

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

以下是该项目的一些插图:

注册屏幕

4

5 回答 5

26

我也陷入了同样的问题。正如@sam 提到的,该库有一个非常有用的演示项目。

解决方案 您只需要选择所有textField或UIViews所在的UIView。然后你只需要将它的类更改为

“IQPreviousNextView”

其余的将由图书馆处理。

问题画面

在此处输入图像描述

解决方案是屏幕短

在此处输入图像描述

希望它有所帮助:)。它拯救了我的一天。

于 2017-04-23T20:33:51.140 回答
7

@Ibrahim Yildirim,如果工具栏上没有出现下一个和上一个按钮,这是因为文本字段不能在同一个 uiview 中。只有当所有文本字段都在同一个超级视图中时,它们才会出现。

于 2015-03-17T11:15:09.703 回答
2

请在您的应用程序委托文件 (AppDelegate.swift) 中在此函数中添加这行代码:didFinishLaunchingWithOptions。代码行:IQKeyboardManager.shared.previousNextDisplayMode = .alwaysShow

于 2018-10-10T13:20:21.173 回答
1

转到 IQUIView+IQKeyboardToolbar.m 文件并进行以下更改

只需更改以下方法的东西

- (void)addPreviousNextDoneOnKeyboardWithTarget:(id)target previousAction:(SEL)previousAction nextAction:(SEL)nextAction doneAction:(SEL)doneAction titleText:(NSString*)titleText
- (void)addPreviousNextRightOnKeyboardWithTarget:(id)target rightButtonImage:(UIImage*)rightButtonImage previousAction:(SEL)previousAction nextAction:(SEL)nextAction rightButtonAction:(SEL)rightButtonAction titleText:(NSString*)titleText
- (void)addPreviousNextRightOnKeyboardWithTarget:(id)target rightButtonTitle:(NSString*)rightButtonTitle previousAction:(SEL)previousAction nextAction:(SEL)nextAction rightButtonAction:(SEL)rightButtonAction titleText:(NSString*)titleText

在上面列出的方法中找到下一个按钮代码

//下一步按钮

IQBarButtonItem *next = [[IQBarButtonItem alloc]initWithImage:imageRightArrow style:UIBarButtonItemStylePlain target:target action:nextAction];

//替换为这段代码

 IQBarButtonItem *next = [[IQBarButtonItem alloc] initWithTitle:@"Next" style:UIBarButtonItemStylePlain target:target action:nextAction];

在上面列出的方法中找到上一个按钮代码

//上一个按钮

IQBarButtonItem *prev = [[IQBarButtonItem alloc] initWithImage:imageLeftArrow style:UIBarButtonItemStylePlain target:target action:previousAction];

//替换为这段代码

 IQBarButtonItem *prev = [[IQBarButtonItem alloc] initWithTitle:@"Previous" style:UIBarButtonItemStylePlain target:target action:previousAction];
于 2016-09-21T06:51:06.187 回答
0

我认为您应该将整个层次结构放在 IQPreviousNextView 中。

从情节提要中将 IQPreviousNextView 类分配给 UIView(父视图)。它将开始工作。

在此处输入图像描述

在此处输入图像描述

于 2020-10-22T10:51:14.117 回答