自定义的xib类
//
// KeyboardToolBar.swift
// datepicker
//
// Created by zhang on 16/1/16.
// Copyright © 2016年 jin. All rights reserved.
//
import UIKit
//自定义协议,响应当前工具条的按钮点击事件
@objc protocol KeyboardToolBarDelagate
{
optional func keyboardToolBarDownButtonClicked()
}
class KeyboardToolBar: UIToolbar {
@IBOutlet weak var preButton: UIBarButtonItem!
@IBOutlet weak var downButton: UIBarButtonItem!
@IBAction func downClick(sender: UIBarButtonItem) {
self.keyboardDelagate?.keyboardToolBarDownButtonClicked?()
}
weak var keyboardDelagate:KeyboardToolBarDelagate!
//快速初始化
class func instance()->KeyboardToolBar
{
//记载xib
let toolBar = NSBundle.mainBundle().loadNibNamed("KeyboardToolBar", owner: nil, options: nil).last as! KeyboardToolBar
return toolBar
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
}
*/
}
在控制器中的调用
//
// ViewController.swift
// datepicker
//
// Created by zhang on 16/1/16.
// Copyright © 2016年 jin. All rights reserved.
//
import UIKit
class ViewController: UIViewController,KeyboardToolBarDelagate {
var datePicker:UIDatePicker!
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
//创建UIDatePickerView
self.datePicker = UIDatePicker()
//设置时间地区
self.datePicker.locale = NSLocale(localeIdentifier: "zh")
//设置时间显示模式
self.datePicker.datePickerMode = UIDatePickerMode.Date
//设置UITexField的键盘
self.textField.inputView = self.datePicker
//返回自定义的xib对象
let keyBoardToolBar = KeyboardToolBar.instance()
//设置自定义xib对象的代理
keyBoardToolBar.keyboardDelagate = self
//设置键盘附件
self.textField.inputAccessoryView = keyBoardToolBar
// self.codeKeyboard()
// self.view.addSubview(toolBar)
// Do any additional setup after loading the view, typically from a nib.
}
//代理方法,把在键盘区的日期放到UITextField中
func keyboardToolBarDownButtonClicked() {
//获得Date对象
let date = self.datePicker.date
//初始化 NSDateFormate 对象
let dateFormat = NSDateFormatter()
//设置 NSDateFormate 对象的格式
dateFormat.dateFormat = "yyyy-MM-dd"
//会的日期对象格式化成字符串的值
self.textField.text = dateFormat.stringFromDate(date)
//收回键盘
self.view.endEditing(true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//代码创建键盘 barTool
func codeKeyboard()
{
//创建 对象
let toolBar = UIToolbar()
//获得宽度
let toolBarW = UIScreen.mainScreen().bounds.size.width
//设置 toolBar的宽高,不设置不能显示
toolBar.bounds = CGRectMake(0, 0, toolBarW, 50)
//添加工具栏按钮
let preButtonItem = UIBarButtonItem(title: "上一页", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
//添加间隔
let fixButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
fixButtonItem.width = 20
//按纽
let nextButtonItem = UIBarButtonItem(title: "下一页", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
//添加间隔,注意这个和 fixButtonItem 的不同
let flexiButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
let downtButtonItem = UIBarButtonItem(title: "down", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
//把控件放到工具条中
toolBar.items = [preButtonItem,fixButtonItem,nextButtonItem,flexiButtonItem,downtButtonItem]
// 把工具条设置成当前键盘
self.textField.inputAccessoryView = toolBar
}
}