我找不到关于 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/