ios - 工具栏中的完成按钮问题

标签 ios uitoolbar cancel-button

我添加了一个带有完成和取消按钮的工具栏,一切正常。突然,完成和取消文本被隐藏。这些按钮存在并且可以单击,但是没有文本。除了相同的问题,我尝试了所有方法。

这是关于工具栏的代码:

func createDatePicker(){
    //format for datepicker display
    datePicker.datePickerMode = .date
    datePicker.minimumDate = Date()
    datePicker.backgroundColor = UIColor.white

    // ToolBar
    let toolBar = UIToolbar()
    toolBar.barStyle = UIBarStyle.default
    toolBar.isTranslucent = true
    toolBar.backgroundColor = UIColor(red: 253/255, green: 184/255, blue: 20/35, alpha: 1.0)

    //datePicker.tintColor = UIColor.blue
    toolBar.tintColor = UIColor.blue
    toolBar.sizeToFit()
    toolBar.isUserInteractionEnabled = true
    //add a done button on this toolbar

    let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneClicked))
    let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
    let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelClicked))
    toolBar.setItems([cancelButton,spaceButton,doneButton], animated: true)
    testfield.inputAccessoryView = toolBar
    testfield.inputView = datePicker

    self.view.addSubview(testfield)
}

结果如下:

最佳答案

这是根据您的代码使用的代码,对我来说工作正常

import UIKit

class ViewController: UIViewController {

    var datePicker = UIDatePicker()
    var testfield: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        createDatePicker()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    func createDatePicker(){
        // TextField
        testfield = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40))
        testfield.placeholder = "testfiled"
        self.view.addSubview(testfield)

        //format for datepicker display
        datePicker.datePickerMode = .date
        datePicker.minimumDate = Date()
        datePicker.backgroundColor = UIColor.white

        // ToolBar
        let toolBar = UIToolbar()
        toolBar.barStyle = UIBarStyle.default
        toolBar.isTranslucent = true
        toolBar.backgroundColor = UIColor(red: 253/255, green: 184/255, blue: 20/35, alpha: 1.0)

        //datePicker.tintColor = UIColor.blue
        toolBar.tintColor = UIColor.blue
        toolBar.sizeToFit()
        toolBar.isUserInteractionEnabled = true
        //add a done button on this toolbar

        let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneClicked))
        let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
        let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelClicked))
        toolBar.setItems([cancelButton,spaceButton,doneButton], animated: true)
        testfield.inputAccessoryView = toolBar
        testfield.inputView = datePicker

    }

    @objc func doneClicked(){

    }
    @objc func cancelClicked(){

    }

}

请尝试同时在设备和模拟器上进行测试
或者在构建之前尝试clean(shift + cmd + k)项目,这在大多数情况下会有所帮助。

结果

enter image description here

关于ios - 工具栏中的完成按钮问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51011147/

相关文章:

ios - 试图从 plist 中获取图像源

ios - UIToolbar 未显示,但位于 self.view 下方

iphone - 如何使工具栏字体与 UINavigationController 匹配?

iphone - 如何避免 UIToolbar TintColor 改变 UIButtonItem 按钮颜色?

ios - 如何制作一个异步方法来处理来自委托(delegate)的数据?

ios - _OBJC_CLASS 错误 objective-c

javascript - 显示/隐藏 iPad 的功能切换

java - 停止/中断操作

ios - 取消按钮在 MFMailComposeViewController 中不执行任何操作 - iOS 8

multithreading - JavaFX - 取消任务不起作用