有人可以解释一下为什么 textDidChange 没有处理我的委托,但 controlTextDidChange 可以从 NSTextField 工作。
- (void)controlTextDidChange:(NSNotification *)aNotification{
NSBeep();
}
从
- (void)textDidChange:(NSNotification *)aNotification{
NSBeep();
}
有人可以解释一下为什么 textDidChange 没有处理我的委托,但 controlTextDidChange 可以从 NSTextField 工作。
- (void)controlTextDidChange:(NSNotification *)aNotification{
NSBeep();
}
从
- (void)textDidChange:(NSNotification *)aNotification{
NSBeep();
}
controlTextDidChange:
NSTextField
是在(继承自NSControl
)上定义的正确委托方法。
textDidChange:
是一种方法,当调用 on 时NSTextField
,它的行为就好像它的文本发生了变化(包括调用上述方法)。它不是您要实现的委托方法。
Apple 有点不一致,因为他们在UISearchBarDelegatetextDidChange:
上有一个委托方法。
文本更改:Informs the delegate that the text object has changed its characters or formatting attributes.
我猜这意味着它的字体(文本属性)发生了变化,而不是输入的文本。