所以我已设置了正常工作为UITextField,而是试图以规范的控制,因此它可以在其他视图中重复使用的时候,我似乎无法对其进行初始化/它的工作它和普通的UITextField一样。初始化的UITextField的一个子类中迅速
变量声明为
@IBOutlet weak var searchTextField: SearchTextField!
然后初始化,并委托设置:
self.searchTextField = SearchTextField()
self.searchTextField.delegate = self
但试图设置委托时,我得到EXC_BAD_INSTRUCTION。我已经取出,加入各种初始化方法的子类,我目前的版本有3个这可能是矫枉过正,但他们停止编译器抱怨:
import Foundation
class SearchTextField : UITextField
{
override init()
{
super.init()
}
override init(frame:CGRect)
{
super.init(frame:frame)
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setPlaceholderText()
{
let searchIconCharacter: Character = "\u{1F50D}"
let searchFieldPlaceholder: String = "\(searchIconCharacter) Where to?"
self.placeholder = searchFieldPlaceholder
}
}
我敢肯定,我迅速的语法是如此可怕我应该改正的其他事情让我知道。导致SearchTextField无法设置,初始化后仍然为零?这与它是一个弱IBOutlet有关吗?
是否'self'符合'UITextFieldDelegate'? (像'class MyViewController:UIViewController,UITextFieldDelegate') – 2014-11-20 20:55:37
是的,就像那样。 – Tasonir 2014-11-20 22:42:41