【问题标题】:How can i create `IBOutlet` or `IBAction` in custom class如何在自定义类中创建“IBOutlet”或“IBAction”
【发布时间】:2012-01-21 17:47:40
【问题描述】:

如何在考虑以下条件的情况下创建IBOutletIBAction

  • IBActionIBOutlet 必须在我的自定义类中创建(继承自 NSObject
  • NSButton 实例在 Interface Builder (XCode 4) 中可见

简而言之,我想将按钮的点击动作添加到我的班级。

任何帮助appriciated,谢谢:)

编辑 19.02.2012

我在问问题时没有提供所有需要的数据...我只需要阅读更多可可指南...

我想将动作连接到其他范围的组件,据我所知这是不可能的:(

【问题讨论】:

    标签: cocoa interface-builder ibaction iboutlet nsbutton


    【解决方案1】:

    查看 Xcode 4 附带的 Apple 的 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 的实例 - 从Object Library 中选择Object 并将其拖到您的Objects 上(通常在画布的左侧) 或设计画布(它只会转到对象,而不是在画布上创建图形小部件)。现在选择添加的 Object 并在 Inspector(通常在画布的 rhs 上)将类设置为 MyCustomClass。现在,当您的应用程序启动时,将创建一个 MyCustomClass 实例。
    2. 在设计画布上选择您的NSButton,在Inspector 中选择Connections 选项卡。单击并从 Sent Actions 下的 selector 拖动到 Objects 下的 MyCustomClass。发布后,您将获得IBActions 的菜单供您选择,选择myButtonClickAction
    3. 您可能希望将IBOutlet 添加到您的应用程序委托 以链接到已创建的自定义对象实例,否则您将无法获得直接的方法访问它。执行此操作的过程遵循与上述IBAction 相同的模式。

    就是这样,用文字(图片帮助),非常简短。

    现在去阅读那些教程!

    【讨论】:

    • 我省略了第 3 步,无法理解为什么创建了对象但无法访问 - 谢谢!
    【解决方案2】:

    IBOutlet 和 IBAction 只是接口构建器用于将 UIComponents 及其操作连接到类的标志(因此前缀 IB)。这就是所有的用途 - 您不会使用它们以编程方式将按钮与操作挂钩

    如果你想将一个按钮与一个动作挂钩,你需要给按钮添加和动作。

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

    【讨论】:

    • Cocoa 中的控件只有一个目标和动作,因此您只需设置按钮的action 和可选的target(不设置它,它将沿着响应者链发送动作)。
    猜你喜欢
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2017-12-04
    相关资源
    最近更新 更多