HPNSwizzling
A swizzling that works.
Installation
Either via SPM (recommended), or by copying NSObject+HPNSwizzling.{h,m}
into your project.
Important Note
The repository does have an xcodeproj
with a shared scheme for debug purposes. The project
might be compatible with Carthage–or not. It is not officially supported but might work for you.
Usage
@import HPNSwizzling; /* If installed via SPM. */
@implementation NSView (MyViewAdditions)
static void MySetFrame(id self, SEL _cmd, CGRect frame);
static void (*OriginalSetFrame)(id self, SEL _cmd, CGRect frame);
static void MySetFrame(id self, SEL _cmd, CGRect frame) {
// ***** CUSTOM WORK HERE *****
OriginalSetFrame(self, _cmd, frame);
// ***** OR HERE *****
}
+ (void)load
{
CHECKED_SWIZZLE(NSView, setFrame:, MySetFrame, OriginalSetFrame);
}
@end
Developers Notes
The include folder in the HPNSwizzling source code folder is there for SPM-compatibility. It contains
a special HPNSwizzling.h
umbrella header and a soft link to the other header.
Credits
This project was originally created by François Lamboley while working at happn.