mirror of https://github.com/LIJI32/SameBoy.git
40 lines
1.0 KiB
Objective-C
40 lines
1.0 KiB
Objective-C
#import "NSTextFieldCell+Inset.h"
|
|
#import <AppKit/AppKit.h>
|
|
#import <objc/runtime.h>
|
|
|
|
@interface NSTextFieldCell ()
|
|
- (CGRect)_textLayerDrawingRectForCellFrame:(CGRect)rect;
|
|
@property NSSize textInset;
|
|
@end
|
|
|
|
@implementation NSTextFieldCell (Inset)
|
|
|
|
- (void)setTextInset:(NSSize)textInset
|
|
{
|
|
objc_setAssociatedObject(self, @selector(textInset), @(textInset), OBJC_ASSOCIATION_RETAIN);
|
|
}
|
|
|
|
- (NSSize)textInset
|
|
{
|
|
return [objc_getAssociatedObject(self, _cmd) sizeValue];
|
|
}
|
|
|
|
- (CGRect)_textLayerDrawingRectForCellFrameHook:(CGRect)rect
|
|
{
|
|
CGRect ret = [self _textLayerDrawingRectForCellFrameHook:rect];
|
|
NSSize inset = self.textInset;
|
|
ret.origin.x += inset.width;
|
|
ret.origin.y += inset.height;
|
|
ret.size.width -= inset.width;
|
|
ret.size.height -= inset.height;
|
|
return ret;
|
|
}
|
|
|
|
+ (void)load
|
|
{
|
|
method_exchangeImplementations(class_getInstanceMethod(self, @selector(_textLayerDrawingRectForCellFrame:)),
|
|
class_getInstanceMethod(self, @selector(_textLayerDrawingRectForCellFrameHook:)));
|
|
}
|
|
|
|
@end
|