0

就能够在 ViewController 和 View 窗口之间建立关系而言,我似乎遇到了 iPhone SDK 2.1 的问题。就 Cocoa Touch 类而言,我继续前进并添加了一个 UIViewController子类。我确保目标是现有项目的一部分。之后我添加了一个用户界面-> 查看 XIB。在UIViewController我有一些直接的代码,我从其他地方的示例代码中复制/粘贴:

编辑视图控制器.h:

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

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

编辑视图控制器.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 并使用 引用类标识时EditorViewController,不会发生自动完成,这对我来说意味着它没有对 EditorViewClass. 当我尝试控制并单击从视图到文件所有者时,我得到了 nada。

在这个过程中,我忽略了哪些可能的特性不允许我将视图输出到控制器?

除了将项目名称作为目标检查之外,我还如何确保我的用户界面视图 XIB 与项目相关联?

4

2 回答 2

2

(这似乎不是 iPhone 特有的——它是任何平台的一般问题。)

几乎不清楚这意味着什么:“现在,当我单击我的新 xib 并使用 EditorViewController 引用类标识时,不会发生自动完成,这对我来说意味着它没有对 EditorViewClass 的这种认识。”

您的意思是您选择了 File's Owner 并尝试将其类设置为 EditorViewController,但 Interface Builder 没有为您自动完成类名?

如果是这种情况,是否与项目关联的 xib 文件?

其他不直接相关的点:

最佳实践是现在将 IBOutlet 与属性关联:

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

您还应该释放文本字段dealloc

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

您的问题的格式使您很难看到您编写的代码。术语也是“奇怪的”——outlet 不是动词:

“在这个过程中,我忽略了哪些可能的特性不允许我将视图输出到控制器?” 你的意思是:“有什么我可能忽略的东西意味着我无法将控制器的视图出口连接到 Interface Builder 中的视图吗?”

于 2008-10-08T21:49:35.217 回答
2

它应该像选择文件所有者并在类框中输入类的名称一样简单(它应该自动完成并且也在下拉菜单中)。确保您没有尝试将类设置为视图本身。

于 2009-04-29T21:39:54.810 回答