0

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 プロトコルを採用しており、現在それ以上の拡張は行っていません」と簡単に書かれています。でも意味が分からなかった…

4

1 に答える 1