如何在自定义类中创建`IBOutlet`或`IBAction`

4
如何考虑以下条件创建IBOutletIBAction
  • IBActionIBOutlet必须在我的自定义类中创建(继承自NSObject
  • Interface Builder (XCode 4)中可见NSButton实例
简而言之,我想将按钮的单击操作添加到我的类中。
任何帮助都会受到赞赏,谢谢:)
编辑19.02.2012:
我在提问时没有提供所有所需的数据...我只需要阅读一些cocoa指南...
我想将动作钩连到其他范围的组件,这是不可能的,据我所知 :(
2个回答

5

请查看附带于Xcode 4的苹果Cocoa教程文档,这对于Xcode/Cocoa/界面设计模型来说是相当基础的!

概述如下:

@interface MyCustomClass

- (IBAction) myButtonClickAction:(id)sender;

@end

@implementation MyCustomClass

- (IBAction) myButtonClickAction:(id)sender
{
   NSLog(@"My button has been clicked");
}

@end

现在在界面设计器中(只需在Xcode中打开.xib文件即可进入设计器),您需要执行以下操作:
  1. 添加一个 MyCustomClass 的实例 - 从 对象库 中选择 对象 并将其拖动到您的 对象 上(通常位于画布的左侧)或设计画布上(它只会放置在对象上,而不会在画布上创建图形小部件)。现在选择添加的 对象 并在 检查器 中(通常位于画布的右侧)将类设置为 MyCustomClass。现在当您的应用程序启动时,将创建 MyCustomClass 的实例。
  2. 在设计画布上选择您的 NSButton,在 检查器 中选择 连接 选项卡。从 发送操作 下的 选择器 拖动到您的 MyCustomClass 下的 对象 上。释放后,您将获得一个菜单,其中包含要选择的 IBAction,请选择 myButtonClickAction
  3. 您可能希望添加一个 IBOutlet 到您的 应用程序委托,以链接到已创建的自定义对象实例,如果您不这样做,将没有直接访问它的方法。执行此操作的过程与上面的 IBAction 相同。
这就是全部内容,简单明了(图片有助于理解)。
现在去阅读那些教程吧!

我忽略了第三步,不明白为什么对象被创建但无法访问 - 谢谢! - Jack James

0

IBOutlet和IBAction只是标志,用于由界面构建器将UI组件及其操作连接到类(因此前缀为IB)。这就是它们的全部用途 - 您不使用它们来编程地连接按钮与操作

如果要将按钮连接到操作,则需要向按钮添加操作。

(不确定NSButton的语法,因为我是iOS程序员 - 但搜索文档应该很清楚)


Cocoa中的控件只有一个目标和动作,因此您只需设置按钮的“action”,以及可选的“target”(如果不设置,“action”将沿着响应者链发送)。 - Peter Hosey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接