【问题标题】:Trouble with next/previous buttons with IQKeyboardManagerIQKeyboardManager 的下一个/上一个按钮出现问题
【发布时间】:2015-03-11 17:43:59
【问题描述】:

我在一个 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

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

【问题讨论】:

    标签: ios swift iqkeyboardmanager


    【解决方案1】:

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

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

    “IQPreviousNextView”

    其余的都将由图书馆处理。

    问题画面

    解决办法是屏幕短

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

    【讨论】:

    • 确实很有帮助。
    • 完全需要:)
    • 你又拯救了世界;)
    【解决方案2】:

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

    【讨论】:

    • 从现在开始,您也可以使用 '-(void)considerToolbarPreviousNextInViewClass:(Class)toolbarPreviousNextConsideredClass' 方法将其与其他 sublings 一起使用。我将在 repo 代码中添加一个演示功能。
    • github.com/hackiftekhar/IQKeyboardManager下载演示项目... & CustomView 有你想要的相同解决方案
    【解决方案3】:

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

    【讨论】:

    • 最好的解决方案是为该主视图提供类“IQPreviousNextView”,即使视图中只有一个文本字段,使用您的解决方案也会显示下一个上一个箭头。
    【解决方案4】:

    转到 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];
    

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

    //上一个按钮

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

    //替换为这段代码

     IQBarButtonItem *prev = [[IQBarButtonItem alloc] initWithTitle:@"Previous" style:UIBarButtonItemStylePlain target:target action:previousAction];
    

    【讨论】:

    • 这个问题被标记为“swift”,而不是“objective-c”。
    【解决方案5】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多