6

有人可以解释一下为什么 textDidChange 没有处理我的委托,但 controlTextDidChange 可以从 NSTextField 工作。

 - (void)controlTextDidChange:(NSNotification *)aNotification{
    NSBeep();
}

 - (void)textDidChange:(NSNotification *)aNotification{
    NSBeep();
}
4

2 回答 2

5

controlTextDidChange:NSTextField是在(继承自NSControl)上定义的正确委托方法。

textDidChange:是一种方法,当调用 on 时NSTextField,它的行为就好像它的文本发生了变化(包括调用上述方法)。它不是您要实现的委托方法。

Apple 有点不一致,因为他们在UISearchBarDelegatetextDidChange:上有一个委托方法。

于 2012-09-02T14:37:54.843 回答
1

文本更改:Informs the delegate that the text object has changed its characters or formatting attributes.

我猜这意味着它的字体(文本属性)发生了变化,而不是输入的文本。

于 2012-09-01T13:14:43.727 回答