0

私はバインディングを把握しようとしており、xcode で CPTextView を使用して CPWindow をセットアップし、ウィンドウとテキストビューをそれぞれのアウトレットにバインドしました。

私は少し立ち往生していますが、テキストビューに_xmlContent. xcodeのバインディングを「デリゲート」に設定し、キーパスを( _xmlContentと考えられるすべてのバリエーションxmlContentも試しました)に設定しました。self.xmlContent

    @import <Foundation/Foundation.j>
    @import <AppKit/AppKit.j>

    @implementation AppController : CPObject
    {
        @outlet CPWindow    theWindow;
        @outlet CPTextView  codeView;

        CPString _xmlContent @accessors(property=xmlContent);
    }

    // ...

    @end

私が今得ているメッセージは次のとおりです。

CPUndefinedKeyException: <AppController 0x00a177> is not key value coding-compliant for the key xmlContent

AppController キー値コーディングをキー「xmlContent」に準拠させるにはどうすればよいですか?

4

1 に答える 1

1

あなたのコードは正しいようです。私はそれを自分で作り直しましたが、私にとってはうまくいきます:

@implementation AppController : CPObject
{
    @outlet CPWindow    theWindow;

    CPString _xmlContent @accessors(property=xmlContent);
}

- (void)applicationDidFinishLaunching:(CPNotification)aNotification
{
}

- (void)awakeFromCib
{
    [theWindow setFullPlatformWindow:YES];
    [self setXmlContent:@"kitten"];

xmlContent へのデリゲート バインディングを示す Xcode 設定

バインドが機能していることを示す Safari

実行していると思われるコードを実行していることを確認する必要があります。ここでのよくある落とし穴の 1 つは、一部の Web ブラウザーはキャッシュされたコードのコピーに固執することを好むため、テストしているブラウザーで [キャッシュを無効にする] オプションが有効になっていることを確認してください。

他のすべてが失敗した場合は、開発用 HTTP サーバーのポート番号を変更し、新しい URL からページをロードします。これにより、ブラウザーはすべての新しいコピーを強制的に取得します (URL が変更されたため)。

于 2016-12-14T18:44:28.307 に答える