在 InterfaceBuilder 中连接 iOS 插座

发布于 2024-09-16 07:10:40 字数 1517 浏览 0 评论 0原文

我是 iOS 开发新手,并成功完成了有关如何在 Mac OSX Cocoa 应用程序中创建和连接插座的教程。然而,当我尝试对我的 iPhone 应用程序遵循相同的流程时,我总是碰壁...(对冗长的示例表示歉意 - 请耐心等待)

项目 A:

在 xCode 中:

  1. 创建新的 Mac OSX Cocoa 应用程序
  2. 创建一个新类

    SimpleViewController : NSObject


#import <Cocoa/Cocoa.h>

@interface SimpleViewController : NSObject {
    IBOutlet NSTextField *aField;
    IBOutlet NSButton *aButton;
}

@end

在 Interface Builder 中:

  1. File >读取类文件
  2. 拖动 我的库中的 SimpleViewController 进入 main.nib
  3. Ctl 拖动 SimpleViewController 来查看 连接我的插座的元素

以上一切都很好。 现在,在 iPhone 应用程序中进行同样的操作:

项目 B:

在 XCode 中:

  1. 创建新的 iPhone OS 基于窗口的应用程序
  2. 创建新类

    SimpleViewController : UIViewController


#import <UIKit/UIKit.h>
@class NSTextField;
@class NSButton;

@interface EmbedComplexViewController : UIViewController {
    IBOutlet NSTextField *aField;
    IBOutlet NSButton *aButton;
}

@end

(请注意,我的视图控制器现在是 UIViewController 的扩展,另外,这次我需要为我的插座类使用前向类声明,这不是问题,但这有必要吗?)

在 Interface Builder 中:

  1. File >读取类文件
  2. 拖动 我的库中的 SimpleViewController 进入 main.nib
  3. Ctl 拖动 SimpleViewControllerview 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:

  1. Create new Mac OSX Cocoa Application
  2. Create a new class

    SimpleViewController : NSObject


#import <Cocoa/Cocoa.h>

@interface SimpleViewController : NSObject {
    IBOutlet NSTextField *aField;
    IBOutlet NSButton *aButton;
}

@end

In Interface Builder:

  1. File > Read class files
  2. Drag
    SimpleViewController from my library
    into the main.nib
  3. 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:

  1. Create new iPhone OS Window-Based Application
  2. 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:

  1. File > Read class files
  2. Drag
    SimpleViewController from my library
    into the main.nib
  3. Ctl-drag from
    SimpleViewController to view
    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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吃兔兔 2024-09-23 07:10:40

在iOS开发中,我们使用UIButtonUITextField等(参见iphone开发者文档)。

不,你不需要转发声明这些类(因为它们没有包含在 UIKit 中,所以你需要这样做)

In iOS development, we use UIButton and UITextField 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文