所以我一直在学习Swift和XCode接口以进入iOS开发。要做到这一点,我一直在练习一些项目,这些项目将帮助我了解所有这些,所以我选择了一个制作自定义键盘的项目。但是,因为我猜测教程是用旧版本的Swift / XCode编写的,所以我一直都会遇到错误,尤其是错误。
任何时候我进入设置并添加我的自定义键盘,我会去使用它,每当我在键盘切换器中切换它时,键盘崩溃并默认返回原始iOS键盘(这在模拟器和我的手机上都会发生此外,目标iOS是正确的)。在那次崩溃后,我收到了这个错误:
plugin CalculatorKeyboard plugin myName.CalculatorKeyboard.Calculator interrupted
plugin CalculatorKeyboard plugin myName.CalculatorKeyboard.Calculator invalidated
我正在使用的当前代码:
class KeyboardViewController: UIInputViewController {
var customInterface: UIView!
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
let nib = UINib(nibName: "Calculator", bundle: nil)
let objects = nib.instantiateWithOwner(self, options: nil)
customInterface = objects[0] as! UIView
}
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(customInterface)
}
}
旧代码:
// var customInterface: UIView!
override func viewDidLoad() {
super.viewDidLoad()
loadInterface()
}
func loadInterface() {
let calculatorNib = UINib(nibName: "Calculator", bundle: nil)
let objects = calculatorNib.instantiateWithOwner(self, options: nil)
view = objects[0] as! UIView
}
我希望能得到一些帮助,因为我无法在Google上找到任何答案。谢谢! :)
注意:如果我可以使用旧代码,我更愿意,因为它在自己的功能中更加清晰。
答案 0 :(得分:1)
这将有效
override func viewDidLoad() {
super.viewDidLoad()
let nib = UINib(nibName: "KeyboardView", bundle: nil)
let objects = nib.instantiateWithOwner(self, options: nil)
view = objects[0] as! UIView;
}
还有一个很好的演示应用程序,用swift和Objective-C https://github.com/iManiaq/ios-color-keyboard
编写修改强> 转到setting-> general->键盘 你在那里添加键盘
在此输入图片说明