0

ViewController と View ウィンドウの間の関係を確立できるという点で、iPhone SDK 2.1 に問題があるようです。ココア タッチ クラスに関しては、先に進んで UIViewControllerサブクラスを追加しました。ターゲットが既存のプロジェクトの一部であることを確認しました。その直後に、ユーザー インターフェイス -> View XIB を追加しました。中UIViewControllerには、サンプルコードから文字通りコピー/貼り付けた簡単なコードがあります。

EditViewController.h:

@interface EditorViewController : UIViewController <UITextFieldDelegate> {
    UITextField *field;
}

@property(nonatomic, retain) IBOutlet UITextField *field;
@end

EditViewController.m

#import "EditorViewController.h"

@implementation EditorViewController

- (BOOL)shouldAutorotateToInterfaceOrientation:
         (UIInterfaceOrientation)interfaceOrientation {
   // Return YES for supported orientations
  return (interfaceOrientation == UIInterfaceOrientationPortrait);
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}


- (void)dealloc {
   [super dealloc];
}


@end

お察しのとおり、あまり効果がありません。新しい xib をクリックして でクラス ID を参照するとEditorViewController、オートコンプリートは発生しません EditorViewClass。ビューから [File's Owners] を Ctrl + クリックしようとすると、nada が表示されます。

このプロセスで見落としている可能性のある特異性には、ビューをコントローラーに出力できないものがありますか?

プロジェクト名がターゲットとしてチェックされているのを確認する以外に、自分のユーザー インターフェイス ビュー XIB がプロジェクトに関連付けられていることを確認するにはどうすればよいですか?

4

2 に答える 2

2

(これは iPhone に固有のものではないようです。どのプラットフォームでも一般的な問題です。)

これが何を意味するのかはほとんど明らかではありません。

ファイルの所有者を選択し、そのクラスを EditorViewController に設定しようとしたのに、Interface Builder がクラス名をオートコンプリートしなかったということですか?

この場合、xib ファイルはプロジェクトに関連付けられていますか?

直接関係のないその他のポイント:

ベスト プラクティスは、IBOutlet をプロパティに関連付けることです。

@interface EditorViewController : UIViewController
{
    UITextField *field;
}
@property(nonatomic, retain) IBOutlet UITextField *field;
@end

のテキスト フィールドも解放する必要がありますdealloc

-(void)dealloc {
    [textField release];
    [super dealloc];
 }

質問の形式により、記述したコードがわかりにくくなっています。用語も「奇数」です。アウトレットは動詞ではありません。

「私が見落としている、このプロセスで考えられる特異性のうち、ビューをコントローラーに出力できないものは何ですか?」「コントローラーのビュー アウトレットを Interface Builder のビューに接続できないことを意味する、見落としている可能性のあるものはありますか?」

于 2008-10-08T21:49:35.217 に答える
2

ファイルの所有者を選択し、クラス ボックスにクラスの名前を入力するのと同じくらい簡単である必要があります (オートコンプリートされ、ドロップダウン メニューにも表示されます)。クラスをビュー自体に設定しようとしていないことを確認してください。

于 2009-04-29T21:39:54.810 に答える