Swift:以编程方式在键盘上方添加 UIButton

Posted

技术标签:

【中文标题】Swift:以编程方式在键盘上方添加 UIButton【英文标题】:Swift: Programmatically add UIButton above keyboard 【发布时间】:2016-07-25 21:07:31 【问题描述】:

我正在尝试添加一个(圆角半径为 25.0 的自定义)UIButton 以悬停在我的视图控制器中的键盘上方。

我已经尝试通过使用以下代码将此按钮添加到工具栏来自己完成此操作,但是,我不是在寻找工具栏:

    let toolbar = UIToolbar(frame: CGRectMake(0, 0, self.view.frame.size.width, 50))
    toolbar.barStyle = UIBarStyle.Default
    loginButton.titleLabel?.textColor = UIColor.whiteColor()
    loginButton.backgroundColor = UIColor.redColor()
    loginButton.titleLabel?.text = "Sign Up"
    loginButton.addTarget(self, action: #selector(signUp), forControlEvents: .TouchUpInside)
    let customButton = UIBarButtonItem(customView: loginButton)
    toolbar.items = [customButton]
    toolbar.sizeToFit()
    //...
    //When credentials are valid, show/enable button...
    usernameEmailField.inputAccessoryView = toolbar

如何添加 UIButton 以始终悬停在键盘上方?

谢谢。

【问题讨论】:

您应该了解如何添加键盘配件。以下链接可能会有所帮助:developer.apple.com/library/ios/samplecode/KeyboardAccessory/…***.com/questions/27573045/… 【参考方案1】:

这个对我有用。请试试这个

//create toolbar object
        let doneToolBar: UIToolbar = UIToolbar(frame:CGRect(x: 0, y: 0, width: UIScreen.mainScreen().bounds.size.width, height: 44))
        doneToolBar.barStyle = UIBarStyle.BlackTranslucent
        //add barbuttonitems to toolbar
        let flexsibleSpace: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil) // flexible space to add left end side
        let doneButton: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: #selector(UITextField.didPressDoneButton))
        doneToolBar.items = [flexsibleSpace,doneButton]
        //assing toolbar as inputAccessoryView
        textField.inputAccessoryView = doneToolBar
        doneToolBar.sizeToFit()

【讨论】:

谢谢,但这几乎是我已经拥有的,只是左边的间距。您知道如何将自定义 UIButton 而不是 UIBarButtonItem 添加到工具栏吗?我目前的方法将自定义 UIButton 放在工具栏中,但删除了cornerRadius并且大小不正确:let customButton = UIBarButtonItem(customView: loginButton)toolbar.items = [customButton]

以上是关于Swift:以编程方式在键盘上方添加 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 10 + Swift 3 中以编程方式在我的 WKWebView 上方添加 UILabel

如何以编程方式移动 UIScrollView 以集中在键盘上方的控件中?

以编程方式更改键盘输入类型(Swift)

如何以编程方式完全像这个一样布局 UIButton?

以编程方式在 UIView 上添加 UITextField Swift

在 Swift 中以编程方式添加约束不起作用