gpt4 book ai didi

c++ - 在 Objective-C++ 中处理 Cocoa setAction 消息

转载 作者:搜寻专家 更新时间:2023-10-31 00:44:21 25 4
gpt4 key购买 nike

您如何处理 Objective-C++ 中的 setAction 消息? (不是 Objective-C。)

例如,假设我有:

my_class.mm

NSSegmentedControl *segmented = [[NSSegmentedControl alloc] init];
[segmented setSegmentCount:5];
// etc.
[segmented setAction:???];

应用程序:我正在使用 Qt (C++) 进行编程,需要对一些我想直接使用的 Cocoa 小部件进行包装。我继承自 QMacCocoaViewContainer,但不知道如何处理我包装的 NSSegmentedControl 的“点击”。最终这将发出一个标准的 Qt 信号。

最佳答案

action 只是一个选择器 - 它与 target 一起使用。因此,为 target+action 编写一个 objc 方法,该方法调用或执行您真正想要的操作。 actions' 参数是发送者,但如果不需要,可以省略它。发件人将是发送消息的任何人(例如控件)。它在 ObjC++ 中没有什么不同——这必须包装在一个 objc 方法中,因为目标必须是一个 objc 对象。

所以它看起来像这样:

obj.action = @selector(pressDoStuff:);

方法是:

- (void)pressDoStuff:(id)sender

关于c++ - 在 Objective-C++ 中处理 Cocoa setAction 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8948401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com