在 InterfaceBuilder 中连接 iOS 插座
我是 iOS 开发新手,并成功完成了有关如何在 Mac OSX Cocoa 应用程序中创建和连接插座的教程。然而,当我尝试对我的 iPhone 应用程序遵循相同的流程时,我总是碰壁...(对冗长的示例表示歉意 - 请耐心等待)
项目 A:
在 xCode 中:
- 创建新的 Mac OSX Cocoa 应用程序
创建一个新类
SimpleViewController : NSObject
#import <Cocoa/Cocoa.h>
@interface SimpleViewController : NSObject {
IBOutlet NSTextField *aField;
IBOutlet NSButton *aButton;
}
@end
在 Interface Builder 中:
- File >读取类文件
- 拖动 我的库中的
SimpleViewController
进入 main.nib - Ctl 拖动
SimpleViewController
来查看 连接我的插座的元素
以上一切都很好。 现在,在 iPhone 应用程序中进行同样的操作:
项目 B:
在 XCode 中:
- 创建新的 iPhone OS 基于窗口的应用程序
创建新类
SimpleViewController : UIViewController
#import <UIKit/UIKit.h>
@class NSTextField;
@class NSButton;
@interface EmbedComplexViewController : UIViewController {
IBOutlet NSTextField *aField;
IBOutlet NSButton *aButton;
}
@end
(请注意,我的视图控制器现在是 UIViewController
的扩展,另外,这次我需要为我的插座类使用前向类声明,这不是问题,但这有必要吗?)
在 Interface Builder 中:
- File >读取类文件
- 拖动 我的库中的
SimpleViewController
进入 main.nib - Ctl 拖动
SimpleViewController
到view
elements - 但现在我看不到任何我声明的出口成员变量。相反,我唯一的出口选项是“查看”。
我还需要做什么才能让我声明的出口出现?
谢谢-亚林
I'm new to developing in iOS and successfully ran through a tutorial on how to create and connect outlets in a Mac OSX Cocoa App. However, when I try to follow the same process for my iPhone app, I keep hitting walls... (Apologies for the lengthy example- please bear with)
Project A:
In xCode:
- Create new Mac OSX Cocoa Application
Create a new class
SimpleViewController : NSObject
#import <Cocoa/Cocoa.h>
@interface SimpleViewController : NSObject {
IBOutlet NSTextField *aField;
IBOutlet NSButton *aButton;
}
@end
In Interface Builder:
- File > Read class files
- Drag
SimpleViewController
from my library
into the main.nib - Ctl-drag from
SimpleViewController
to view
elements to connect my outlets
Everything above works great.
Now for the same thing in an iPhone app:
Project B:
In XCode:
- Create new iPhone OS Window-Based Application
Create a new class
SimpleViewController : UIViewController
#import <UIKit/UIKit.h>
@class NSTextField;
@class NSButton;
@interface EmbedComplexViewController : UIViewController {
IBOutlet NSTextField *aField;
IBOutlet NSButton *aButton;
}
@end
(Notice my view controller is now an extension of UIViewController
, not NSObject
. Also, this time I need to use forward class declarations for my outlet classes. Not a problem, but is this necessary?)
In Interface Builder:
- File > Read class files
- Drag
SimpleViewController
from my library
into the main.nib - Ctl-drag from
SimpleViewController
toview
elements - BUT now I can't see any of my declared outlet member variables. Instead, the only outlet option I have is 'view'
What more do I need to do to have my declared outlets show up?
Thanks- Yarin
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在iOS开发中,我们使用
UIButton
和UITextField
等(参见iphone开发者文档)。不,你不需要转发声明这些类(因为它们没有包含在 UIKit 中,所以你需要这样做)
In iOS development, we use
UIButton
andUITextField
and etc, (see the iphone developer documentation).And no, you don't need to forward declare those classes (it made you since they weren't included in UIKit