あなたのコードスニペットは、正常に見えるチェックし、ツールバーのあなたの創造が間違っているかもしれません! textfield
の代理人を設定しましたか?それを逃した場合はfunc textFieldShouldBeginEditing
が呼び出されないように設定してください!
、ご参考のために動作するコードの下に
import UIKit
class ViewController: UIViewController,UITextFieldDelegate {
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// 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.
}
internal func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
let numberToolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 50))
numberToolbar.barStyle = UIBarStyle.default
numberToolbar.items = [
UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.plain, target: self, action: Selector(("cancelNumberPad"))),
UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil),
UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: Selector(("doneWithNumberPad")))]
numberToolbar.sizeToFit()
textField.inputAccessoryView
= numberToolbar
return true
}
@IBAction func didClickDoneButton(_ sender: UIBarButtonItem) {
textField.endEditing(true)
}
@IBAction func buttonClick(_ sender: Any) {
textField.endEditing(true)
}
}
を見つけてください。