Я делаю тест пользовательской клавиатуры.Вот что мне нужно:
- У него должно быть два поля UITextField.Не может быть надписью.
- Клавиатура является встроенным UIView.
- Клавиатуру по умолчанию следует отключить.
- Она не может быть расширением клавиатуры.
Не уверен, почему приложение падает.PS: еще не все ключи в коде.Вот изображение того, что я пытаюсь сделать, и двух контроллеров представления.
Редактировать: Ошибка: Поток 1: Неустранимая ошибка: неожиданно обнаружен ноль при развертывании необязательного значения
Первый контроллер View:
import UIKit
class HomeVC: UIViewController, ButtonTapDelegate {
@IBOutlet var textField1: UITextField!
@IBOutlet var textField2: UITextField!
@IBOutlet var keyboardView: UIView!
var buttonPressed = [String]()
override func viewDidLoad() {
addKeyboard(view: keyboardView)
buttonPressed = [String]()
textField1.inputView = UIView()
textField2.inputView = UIView()
}
func addKeyboard(view: UIView) {
let keyboard = KeyboardVC(nibName: "KeyboardVC", bundle: nil)
view.addSubview(keyboard.view)
addChild(keyboard)
}
func didTapButton(sender: UIButton) {
if sender.tag == 5 {
textField1.text?.append(contentsOf: " ")
} else if sender.tag == 6 {
textField1.text?.removeAll()
buttonPressed = [String]()
} else {
let val = sender.titleLabel?.text
textField1.text?.append(contentsOf: val!)
}
self.textField1.text = buttonPressed.joined(separator: "")
}
}
Вот второй контроллер View:
import UIKit
protocol ButtonTapDelegate {
func didTapButton(sender: UIButton)
}
class KeyboardVC: UIViewController {
var delegate: ButtonTapDelegate!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func buttons(_ sender: UIButton) {
delegate.didTapButton(sender: sender)
print(sender)
}
}