当前位置:  开发笔记 > IOS > 正文

如何在IOS键盘顶部的键盘上添加完成按钮?

如何解决《如何在IOS键盘顶部的键盘上添加完成按钮?》经验,为你挑选了4个好方法。

我想Done在iOS右侧的键盘顶部添加按钮,用于textView.请告诉我该怎么做?

在此输入图像描述

我想实现与上述键盘类似的东西



1> Ramis..:

它可以使用故事板完成:

    将UITextField添加到UIViewController视图.

    在UIViewController的第一级添加UIToolbar

    将UIBarButtonItem添加到UIToolbar中.

    使用IBOutlet将UItoolbar连接到代码.

    使用IBAction将UIBarButtonItem连接到代码(如didClick).

    使UITextField将委托给UIViewController.

    在didClick函数结束编辑(view.endEditing(true))

    在委托函数中,textFieldShouldBeginEditing应为:textField.inputAccessoryView = toolbar并返回true.

在此输入图像描述


@adamprocter您应该将工具栏分配给textView.inputAccessoryView,而不是UIButtonBarItem.

2> Cong Tran..:

希望这有帮助:)

UIToolbar* keyboardToolbar = [[UIToolbar alloc] init];
[keyboardToolbar sizeToFit];
UIBarButtonItem *flexBarButton = [[UIBarButtonItem alloc]
                                  initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                  target:nil action:nil];
UIBarButtonItem *doneBarButton = [[UIBarButtonItem alloc]
                                  initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                  target:self action:@selector(yourTextViewDoneButtonPressed)];
keyboardToolbar.items = @[flexBarButton, doneBarButton];
self.yourTextView.inputAccessoryView = keyboardToolbar;

然后添加yourTextViewDoneButtonPressed方法

-(void)yourTextViewDoneButtonPressed
{
    [self.yourTextView resignFirstResponder];
}



3> Danny182..:

斯威夫特3:

func setDoneOnKeyboard() {
    let keyboardToolbar = UIToolbar()
    keyboardToolbar.sizeToFit()
    let flexBarButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
    let doneBarButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(InsertStatusVC.dismissKeyboard))
    keyboardToolbar.items = [flexBarButton, doneBarButton]
    self.fullNameTextField.inputAccessoryView = keyboardToolbar
}

@objc func dismissKeyboard() {
    view.endEditing(true)
}



4> Anup Gupta..:

这个解决方案适用于Swift3/4

将此行添加到项目中作为扩展 您的问题已解决.

  extension UITextField{

        @IBInspectable var doneAccessory: Bool{
            get{
                return self.doneAccessory
            }
            set (hasDone) {
                if hasDone{
                    addDoneButtonOnKeyboard()
                }
            }
        }

        func addDoneButtonOnKeyboard()
        {
            let doneToolbar: UIToolbar = UIToolbar(frame: CGRect.init(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 50))
            doneToolbar.barStyle = .default

            let flexSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
            let done: UIBarButtonItem = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(self.doneButtonAction))

            let items = [flexSpace, done]
            doneToolbar.items = items
            doneToolbar.sizeToFit()

            self.inputAccessoryView = doneToolbar
        }

        @objc func doneButtonAction() {
            self.resignFirstResponder()
        }

    }

延期之前

在此输入图像描述

延伸

在此输入图像描述

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有