3

NSView サブクラス用の Interface Builder プラグインを作成しています。Interface Builder Plug-in Programming Guide に従っていますが、すべての質問に答えているわけではありません。私のクラスには、設計時にバインディングを作成したい 1 つの NSString プロパティと 4 つの NSColor プロパティがあります。

プラグイン プロジェクトでバインディングが指定されている場所がわかりません。ドキュメントには、Inspector オブジェクトは Attribute Inspector を作成するためだけのものであると記載されています。クラス記述ファイル (.classdescription) には、アウトレットとアクションがリストされていますが、バインディングはリストされていません。

クラスのバインディングはどこで指定しますか?

4

1 に答える 1

3

クラス初期化子で、+ (void)exposeBinding:(NSString *)binding次のように呼び出します。

+ (void)initialize
{
    [self exposeBinding:@"someProperty"];
}

次のように値クラスを指定することもできます。

- (Class)valueClassForBinding:(NSString *)binding
{
    if ([binding isEqual:@"someProperty"])
    {
        return [NSNumber class];
    }
    else
    {
        return [super valueClassForBinding:binding];
    }
}

このCocoaDevの記事と Apple のNSKeyValueBindingCreation Protocol Referenceをご覧ください。

于 2008-11-26T14:38:23.260 に答える