有人可以解释一下为什么textDidChange没有处理我的委托但是controlTextDidChange在NSTextField中工作。
- (void)controlTextDidChange:(NSNotification *)aNotification{
NSBeep();
}
这
- (void)textDidChange:(NSNotification *)aNotification{
NSBeep();
}
答案 0 :(得分:5)
controlTextDidChange:
是NSTextField
上定义的正确委托方法(继承自NSControl
)。
textDidChange:
是一种方法,在NSTextField
上调用时,使其行为就像文本更改一样(包括调用上述方法)。它不是您实施的委托方法。
这与Apple有点不一致,因为UISearchBarDelegate上有textDidChange:
委托方法。
答案 1 :(得分:0)
textDidChange:Informs the delegate that the text object has changed its characters or formatting attributes.
我猜这意味着它的字体(文本属性)会发生变化,而不是输入的文字。