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:
は、で呼び出されるとNSTextField
、テキストが変更されたかのように動作するようにするメソッドです(上記のメソッドの呼び出しを含む)。実装するためのデリゲートメソッドではありません。
UISearchBarDelegatetextDidChange:
にデリゲートメソッドがあるため、Appleとは少し矛盾しています。
textDidChange:Informs the delegate that the text object has changed its characters or formatting attributes.
これは、入力されたテキストではなく、フォント(テキスト属性)が変更されることを意味していると思います。