objective-c - textDidChange 与 controlTextDidChange

标签 objective-c

谁能解释一下为什么 textDidChange 没有处理我的委托(delegate),但 controlTextDidChange 从 NSTextField 工作。

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

来自

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

最佳答案

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

textDidChange:是一种方法,当在 NSTextField 上调用时,它的行为就好像其文本已更改(包括调用上述方法)。它不是您要实现的委托(delegate)方法。

这与 Apple 有点不一致,因为他们在 UISearchBarDelegate 上确实有一个 textDidChange: 委托(delegate)方法.

关于objective-c - textDidChange 与 controlTextDidChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12227975/

相关文章:

ios - 如何使用 [[UIApplication sharedApplication] openURL :] from a foreground app 打开一个新应用程序

iphone - ARC `BAD_ACCESS` 使用 NSString 的类别方法时

objective-c - UILabel透明度

ios - 为什么使用 viewWithTag 高效?

objective-c - 显示来自 json 的图像

iphone - 嵌入式视频播放多个方向?

ios - 在 IB 中使用 Autolayout 如何以编程方式将 UIView 定位在屏幕中央?

iOS Objective-c 同步

objective-c - _PFBatchFaultingArray objectAtIndex :

ios - 在键盘出现之前获取键盘高度?