Выполнение пользовательского ввода. Пользовательский ввод не отображается, если не открыта клавиатура по умолчанию
У меня проблема, что я не могу выполнить пользовательский ввод, если клавиатура не открыта. У меня есть 2 UITextField, один из них имеет собственный inputView. Давайте назовем их tf1 и tf2. TF2 имеет собственный inputView. если я сначала нажму на tf2, то ничего не произойдет. Если я сначала коснусь tf1, появится клавиатура по умолчанию, а затем, когда я нажму tf2, появится и пользовательский ввод. Если на экране нет клавиатуры, пользовательский вид ввода не отображается. Если на экране есть клавиатура, может появиться пользовательский вид ввода. Зачем?
Как назначить inputview показано ниже:
let numPad = KeyboardViewController(nibName:"KeyboardView",bundle: NSBundle.mainBundle())
let numPadFrame = CGRectMake(0, 0, 1024, 352)
override func viewDidLoad() {
super.viewDidLoad()
customKeyboard = numPad.view
customKeyboard.frame = numPadFrame
tf2.inputView = customKeyboard
1 ответ
Наконец я это сделал. Я удалил коды о загрузке пера и т. Д. Из viewDidLoad и создал для него функцию.
Здесь функция
func loadInterface() {
// load the nib file
let calculatorNib = UINib(nibName: "KeyboardView", bundle: NSBundle.mainBundle())
// instantiate the view
let calculatorView = calculatorNib.instantiateWithOwner(self, options: nil)[0] as! UIView
self.view.frame = CGRectMake(0, 0, 1024, 352)
let objects = calculatorNib.instantiateWithOwner(self, options: nil)
self.view = objects[0] as! UIView
self.inputView?.addSubview(calculatorView)
}
и вызвать эту функцию в viewDidLoad.
override func viewDidLoad() {
super.viewDidLoad()
loadInterface()
self.view.autoresizingMask = UIViewAutoresizing.FlexibleHeight
self.view.translatesAutoresizingMaskIntoConstraints = false
// let nib = UINib(nibName: "KeyboardView", bundle: NSBundle.mainBundle())
// self.view.frame = CGRectMake(0, 0, 1024, 352)
// let objects = nib.instantiateWithOwner(self, options: nil)
// view = objects[0] as! UIView;
var counter = 0
for view in self.view.subviews {
if let btn = view as? UIButton {
btn.layer.cornerRadius = 5.0
btn.translatesAutoresizingMaskIntoConstraints = false
btn.tag = counter
counter++
}
}
}
И это решило все.