![](/img/trans.png)
[英]Is there any equivalent to 'strupr' for Xcode (C++) in Mac?
[英]What is the equivalent (if any) to the C++/Windows SendMessage() on the Mac?
具有讽刺意味的是,Objective-C中的每个方法调用都等同于SendMessage。 Objective-C本质上是一个消息传递系统。
所以你只说:
[window myMessage]
然后通过将myMessage传递给Window对象并使其处理该方法来执行myMessage例程...
还可能更接近您真正想要做的事情是使用Notifications在组件之间进行消息传递。
如果在编译时没有Window对象,则编译器可能会抱怨它不知道Window是否可以处理您发送的消息。 对于这些情况,您可以使用:
[window performSelector:@selector(myMessage)]
此调用有替代版本,允许将对象作为参数传递。
这取决于您要使用SendMessage()发送的消息。 例如,可可中的大多数事件都通过-[NSApplication sendEvent:]
,如果需要较低版本的版本,则通过SendEventToEventTarget()
。 对于其他消息,例如调整大小,移动等,您需要查看NSWindow的适当方法(例如-setFrame:animated:
或NSApplication。
一般而言,在Cocoa中,无需像SendMessage()那样使用漏斗例程和函数常量,只需掌握相关对象并调用其方法即可。
在更高层次上,如果您正在谈论Carbon事件管理器,则可以使用函数“ SendEventToEventTarget”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.