 <p>1) For most delegate callback methods, if you provide a parameter-accepting callback the parameter will be the "sender", i.e. the source control. You might need this parameter if you are using the same delegate method to handle the callbacks for multiple controls. Or, if you want to affect some change on the source control in the callback, and you haven't otherwise stored a pointer to it.</p> <p>2) The only time you MUST include the callback definition in the interface definition is if you want to hook up the callback using Interface Builder. If you forget the implementation itself, the callback will likely crash the app as most controls that use callback-delegate methods dont first check to see that the method exists.</p>