我想在我自己的类中设置通知的观察者。在我自己的类中的通知中心
让我们说我们有类似下面例如,
public class MyClass {
var center: NotificationCenter
public init() {
center = NotificationCenter.default
}
public run() {
center.addObserver(self, selector: #selector(test), name: .UIKeyboardDidShow, object: nil)
}
func test() {
Print("TESTED!")
}
}
,并在我的ViewController
,
override func viewDidLoad() {
super.viewDidLoad()
let myClass = MyClass()
myClass.run()
}
那么这其实不会,如果我点击textField
或东西,使工作键盘了。
的NotificationCenter
如果我这样做一定的工作,而无需使用MyClass
,或者如果我改变了对象登记作为观察员象下面这样:
center.addObserver(ViewController.self, selector: #selector(test), name: .UIKeyboardDidShow, object: nil)
,然后我当然应该实现ViewController
因为在我的test
功能一个class function
。
但这不是我想要的方式。任何建议或建议,可以解释为什么这不起作用?
您是否尝试过使用textfield begin delegate? myClass.run() – karthikeyan
@karthikeyan我实际上并没有尝试使用'textfields'和'keyboard'通知,因为它们很常见,所以我只是举例说明。所以没有必要解决相同的行为。我实际上是在观察'NSManagedObjectContextObjectsDidChange'通知。 – sCha