Loading [MathJax]/jax/input/TeX/config.js
社区首页 >问答首页 >在C++类中接收UI事件

在C++类中接收UI事件
EN

Stack Overflow用户
提问于 2011-07-24 15:25:07
回答 1查看 314关注 0票数 1

我正在为iOS用Xcode编写Objective-C++。我的项目主要是C++类和一些最高级别的Objective-C类。我的C++类包含Objective-C UI元素,我需要它们来接收UI事件。UI元素可以直接调用C++成员函数吗?也就是说,是否存在与此C++函数调用等效的方法:

代码语言:javascript
代码运行次数:0
复制
[control addTarget:object action:@selector(action:) forControlEvents:event];    

据我所知,@selector在这方面帮不了我。我需要另一种方法来让控件调用我的成员函数--有这样的方法吗?

现在,我使用一个Objective-C接收器类,它是我的C++类的一个成员,它接收UI事件,然后适当地调用我的C++类,但这似乎是实现这一点的一种间接方法。如果我描述的不可能,有没有更好的方法来做我想要做的事情呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-31 10:55:26

我认为您已经找到了最简单的解决方案。您可以通过在C++基类中实现Obj-C/C++桥来进一步封装此功能,并从中派生任何业务逻辑类。

还有另一种选择,那就是在Objective-C运行时级别执行此操作。让你的C++类用objc_allocateClassPair()生成一个新的Objective-C类,添加一个用class_addMethod()处理动作的方法,等等(参见Objective-C Runtime Reference)我看不出你为什么要走这条路的任何明显的原因,但知道这一点是很好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6807699

复制
相关文章
Android中窗口Input事件接收
至此 , 在InputMangerService与应用窗口间就建立了Socket连接.
None_Ling
2020/09/28
3.9K0
安全事件运营SOP:接收漏洞事件
在开篇《安全事件运营SOP【1】安全事件概述》中,介绍了安全事件的定义、分级、处置原则及处置流程。当发生某类安全事件时,该如何快速处置?以及如何保证不同人员处置的效果都达标?安全事件的种类虽然繁多,但是处理起来并非无据可循。为了解决上述两个问题,同时提升工作效率和降低安全风险。经过大量的运营处置实践,总结出以下常见的处置标准操作程序(SOP)。
aerfa
2023/09/02
1.2K0
安全事件运营SOP:接收漏洞事件
解决EventBus中接收方法中无法更新UI的问题
问题 比如界面MainActivity向界面SecondActivity发送消息时,界面S调用接收方法,可以接收界面M发送的消息,输出台log可以打印出消息内容,但是无法更新UI。 MainActivity Button eventBus= (Button) findViewById(R.id.eventbus); RxView.clicks(eventBus) .throttleFirst(1,TimeUnit.SECONDS) .observeO
用户2032165
2018/06/05
1.6K0
Android中Input事件初始化、接收以及分发
至此 , InputManager完成初始化. 接下来就等待/dev/input中添加设备文件.
None_Ling
2020/09/24
2.1K0
C++中sstream类
C++中的sstream类用来操作string,可以向string中写入数据,也可以从string中读取数据。该类在sstream头文件中定义。该类可以分为istringstream和ostringstream,其中istreamstream用来从string中读取数据;而ostringstream用来向string中写入数据。
全栈程序员站长
2022/09/06
4510
C++中的类
类是一种将抽象转换为用户定义类型的C++++工具,他将数据表示和操纵数据的方法组合成一个整洁的包。 比如有一个股票的类,可以把他的价格,持有人,数量等等,我们可以将股票简化,将操作限制为获得股票、增持、卖出股票、更新股票价格、显示关于股票的信息。此外我们还需要存储一些信息
用户7272142
2023/10/11
1940
C++中的类
在Django中接收文件并存储
这是一个简单的接收客户端上传的头像文件并保存的例子,应该看过这个就已经大体会使用接收文件了
py3study
2020/01/21
2.8K0
29.qt quick-在QML中调用C++类
学习链接:https://blog.csdn.net/qq_37997682/article/details/126640154
诺谦
2021/06/22
1.7K0
29.qt quick-在QML中调用C++类
怎样在 Unity 中创建 UI
在现在每一个软件应用中,用户界面(UI)都是核心的特征。游戏也没有抛弃这一规则。有非常多的游戏都使用 UI 来显示一些信息,比如生命值,技能,地图,武器的弹药,等等。 Unity 3D 提供了许多 UI 组件,你都可以在你的游戏中使用它们。在这篇文章中,我会指导你在 unity 的菜单中如何创建一个简单的暂停菜单。这个暂停菜单将显示一个内容为『Paused』的 text 组件和三个按钮组件:分别是复位按钮『Resume』,重新开始按钮『Restart』,退出按钮『Quit』,并且还是显示游戏从场景加载到现在的时间。在这篇文章的最后,你应该创建出了类似下面的界面:
hrscy
2018/08/30
5.7K0
怎样在 Unity 中创建 UI
C++类和对象(中)
祖师爷在设计 C++ 中的类时,规定每个类中都有六个默认成员函数,即使我们不主动写,编译器也会自动生成,这些成员函数就是神秘的天选之子,不仅神秘,而且还很强大,可以这么说:类和对象的是否学懂,取决于对这几个天选之子的理解程度。本文将会逐一介绍这几个默认成员函数,跟随我的脚步,一起揭开他们的神秘面纱
北 海
2023/07/01
2310
C++类和对象(中)
C++中虚基类
如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员。 C++提供虚基类(virtual base class)的方法,使得在继承间接共同基类时只保留一份成员。
卡尔曼和玻尔兹曼谁曼
2019/01/22
6480
C++中虚基类
【C++】类和对象(中)
如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面
平凡的人1
2022/11/15
1.2K0
【C++】类和对象(中)
C++类和对象(中)
空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员 函数。
二肥是只大懒蓝猫
2023/03/30
1.2K0
C++类和对象(中)
c++中类长度解析
通常我们定义一个类,它所占的空间有多大呢? 首先我们看一下下面的这个类 class A{ public: void func1(void){ printf("11111heihei\n"); }; void func2(void){ printf("11111heihei\n"); }; public: int number; }; class B{ public: void func1(void){ prin
用户1154259
2018/01/17
8050
c++中类长度解析
C++中的queue类、QT中的QQueue类
C++中的queue 实现一种先进先出的数据结构,是一个模板类 头文件 #include<queue> 用法(以int型为例): queue<int> Q;     //定义一个int型队列 Q.empty();   //返回队列是否为空 Q.size(); //返回当前队列长度 Q.front(); //返回当前队列的第一个元素 Q.back();
诺谦
2018/04/27
3.5K0
C++中的stack类、QT中的QStack类
C++中的stack 实现一种先进后出的数据结构,是一个模板类. 头文件 #include<stack> 用法(以int型为例): stack <int> s;           //定义一个int型栈 s.empty(); //返回栈是否为空 s.size(); //返回当前栈中元素的个数 s.push(); //在栈顶上堆进一个元素 s.pop();
诺谦
2018/04/27
2.1K0
(五)在 React 中绑定事件
# 🥥一、在 React 中绑定事件 接着上一章的案例,给他绑定事件,动态的切换 boolea # 🥮二、预热原生事件绑定 # 原生事件绑定的几种方式 <button id="btn1">按钮一</button> <button id="btn2">按钮二</button> <button onclick="demo()">按钮三</button> <script> // 方法一 兼容性最好 const btn1 = document.getElmentById('btn1') btn1.addEvent
老怪兽
2023/02/22
2.6K0
在nodejs中事件循环分析
在上一篇文章在chromev8中的JavaScript事件循环分析中分析到,在chrome中的js引擎是通过执行栈和事件队列的形式来完成js的异步操作。然而在node中,事件循环表现出的状态与浏览器中大致相同。不同的是node中有一套自己的模型。node中事件循环的实现是依靠的libuv引擎。我们知道node选择chrome v8引擎作为js解释器,v8引擎将js代码分析后去调用对应的node api,而这些api最后则由libuv引擎驱动,执行对应的任务,并把不同的事件放在不同的队列中等待主线程执行。 因此实际上node中的事件循环存在于libuv引擎中。
Yerik
2022/04/11
4K0
点击加载更多

相似问题

在BackgoundTask中接收事件并在UI中作出反应

12

如何使UI接收滚动事件

21

silverlight在非UI类挂钩中接收INotifyPropertyChanged

10

Angular -在模板中接收事件时如何添加类

114

在childs中接收事件

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档