objective-c - 如何在 Interface Builder 中提供自己的已发送消息

标签 objective-c events interface-builder messages connection

我找不到关于 Interface Builder 为组件触发事件和其他组件消息之间的图形连接确定发送消息导出的方式的文档。
我想生成封装有限状态自动机的组件。输入部分很简单,只需定义 IBAction 消息,您就可以在 Interface Builder 中连接它们。棘手的部分显然是这种连接的另一端。
我想为 FSM 触发的每个事件提供一个不同的导出,例如 NSButton 的“选择器”导出(在检查器的“连接”选项卡上的“已发送消息”下列出)。
如何以编程方式指定此类接口(interface),是否可以指定多个接口(interface)? 或者这种做法不合适;通知会是更好的方法吗? (我使用了 Visual Age 和 Parts 的图形连接,所以我更喜欢它们,但在 Interface Builder 中,对此类连接的支持似乎有点受限)。

提前致谢

我的问题的第一部分已在问题“发送 Action Cocoa - IBAction”中得到回答。我仍在寻找定义多个“已发送消息”的可能性。

最佳答案

当您使用 IBActions 实现您的方法时,生成消息的对象(发送者)将传递给消息。因此,如果我的界面上有一个显示“注销”的按钮和一个对名为 logout: 的 Controller 对象的操作,并且我已将它们连接起来,则该方法会接收触发它的按钮的实例。例如:

- (void)logout:(id)sender
{
  // sender is the instance of whichever wired button triggered
  // this action. We just NSLog() it for now.
  NSLog(@"-[%@ logout:%@]", self, sender);
}

其他对象也可以调用这个 Action ,并且可以将自己作为发送者传递,也可以传递 nil。这方面的细节将留给您作为设计师。

关于objective-c - 如何在 Interface Builder 中提供自己的已发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1888724/

相关文章:

ios - UIAlertController 的 NSNotification

javascript - Javascript 是否会为未处理/未捕获的异常触发事件?

C#订阅事件时为什么要使用 "new"关键字?

ios - Xcode 6 中的“对象”选项卡在哪里?

ios - 大小类为 : Different spacing depending on iPhone screen size 的自动布局

iphone - 当前ViewController :animated:completion display issues in new ios 5. 1 UISplitViewController

ios - CorePlot - 调用 barTouchUpAtRecordIndex 后更改 x 轴标签 :

ios - 如何在 iOS 应用程序中使用 c 静态库?

events - 内核请求监听器中具有 403 http 状态的 Symfony 异常

mono - 完全淘汰 IB 会涉及什么?(monodevelop)