0

私は NSDocument で作業しようとしているので、Text System Overview リファレンスのBuild a Text Editor in 15 Minutesの例を試しました。

アクセサーメソッドを宣言および定義する代わりに、プロパティを使用して合成するなど、提案されたコードにいくつかの変更を加えました。

リファレンスに書かれている各手順に従いましたが、手順 5 を実装できませんでした。

まだ開いていない場合は、MyDocument.xib をダブルクリックして、Interface Builder でドキュメント ウィンドウを開きます。Xcode から、MyDocument.h ファイル アイコンを MyDocument.xib のドキュメント ウィンドウにドラッグします。この手順により、MyDocument オブジェクト インターフェイスに textView という名前のアウトレット変数があることが MyDocument.xib ファイルに通知されます。

コンパイルすると、NSDocument のサブクラスで次の警告が表示されました。

myDocument が setString に応答しない場合がある

MyDocument ウィンドウが表示されず、実行しようとするたびにコンソールに次のメッセージが表示されました。

-[MyDocument string]: 認識されないセレクターがインスタンス 0x215970 に送信されました

誰かが私が間違っているかもしれない場所を教えてもらえますか? Snow Leopard で実行しようとしています...コードを確認するには、ここからダウンロードすることもできます。

4

2 に答える 2

1

私は NSDocument で作業しようとしているので、Text System Overview リファレンスの Build a Text Editor in 15 Minutes の例を試しました。

アクセサーメソッドを宣言および定義する代わりに、プロパティを使用して合成するなど、提案されたコードにいくつかの変更を加えました。

これはかなり古いことは知っていますが、例ではivarを使用しているNSAttributedString *mString;ため、名前を変更するか、次のようなものを使用する必要があります:-

@property(copy, getter=string, setter=setString:) NSAttributedString *mString;
于 2012-06-16T03:59:14.380 に答える
0

現在の Xcode ツールでは、ステップ 5 は実際には必要ないと思います。なぜなら、Interface Builder は、ヘッダー ファイルが保存されるときにこれらの変更を自動的に取得するからです。これは Xcode Tools 3 で追加されたと思います。

私はあなたのプロジェクトを見ていませんが、MyDocument.xib ファイル内の間違ったものにいくつかのアウトレットが接続されているように思えます。大きな手がかりは、MyDocument が「セレクターに応答しないsetString」ということです...このメッセージが表示されているという事実は、プロジェクトがまさにそれを行おうとしていることを意味します。使用しているガイドの主題を考えると、テキスト ビュー用の -setString: メッセージがドキュメント (MyDocument.xib のファイルの所有者) に送信されているように聞こえます。

于 2010-02-10T17:17:15.453 に答える