This is not possible in the general case (messages can be installed from places where I am not, such as runtime or the main function), and it is impractical even where it can be technically possible, because it will require you to walk on the glass and analyze there are bytes.
In practice, you do not need to know the sender in most cases, except for action methods. This is usually a sign of poor construction. And in any case, when you need to get a reference to another object, it should be passed as an argument to the method.
EDIT: I just stumbled upon this and noticed a comment. In case someone is wondering, the reason why he is often a sign of poor design is that he creates a tight connection between components that are almost never needed (again, outside of the action methods). You can usually take a delegate or callback block to achieve the same goal.
Chuck source share