NSTextFieldDelegate的声明真的让我很困惑。
在Xcode中,我点击NSTextFieldDelegate的“跳转到定义”,发现:
@protocol NSTextFieldDelegate <NSControlTextEditingDelegate> @end
我知道如果我们在 NSObject 类型(例如“id”)声明之后添加 <...> 语法,这意味着该对象符合“<>”中指定的协议。
但是,Obj-C 的书籍我没有提到当“<>”表示它遵循协议声明时的含义......
那么,问题1: “<>”在协议声明之后是什么意思?
我继续查看NSControlTextEditingDelegate,发现有几个方法以“control:...”开头。但最吸引我的是NSControlTextEditingDelegate定义上面的文字:
@interface NSObject(NSControlSubclassNotifications)
- (void)controlTextDidBeginEditing:(NSNotification *)obj;
- (void)controlTextDidEndEditing:(NSNotification *)obj;
- (void)controlTextDidChange:(NSNotification *)obj;
@end
哦,新问题来了:
问题2:语法“NSObject(NSControlSubclassNotifications)”是什么意思?NSControlSubclassNotifications实际上是什么?
问题3: NSObject、NSControlSubclassNotifications和NSControlTextEditingDelegate之间的关系是什么?苹果文档简单地说:“NSTextFieldDelegate 协议采用了 NSControlTextEditingDelegate 协议,目前没有进一步扩展它。” 但我无法理解它的含义...