Я думаю, что вам нужен протокол, а не CustomFilter
с заводским подходом. Если вам нужен некоторый подкласс GPUImageFilter
, вы можете создать GPUImageFilter<CustomFilter>
//CustomFilter.h
@protocol CustomFilter
...
@end
typedef GPUImageFilter<CustomFilter> CustomFilter;
//PrivateFilter.h
#import "CustomFilter.h"
@interface PrivateFitler: CustomFilter
...
@end
//GPUImageFilter+CustomFilter.h
@interface GPUImageFilter(CustomFilter)
+ (CustomFilter *)filter;
@end
//GPUImageFilter+CustomFilter.m
#import "PrivateFilter.h"
@implementation GPUImageFilter(CustomFilter)
+ (CustomFilter *)filter
{
return [[PrivateFilter alloc] init;
}
@end
При таком подходе Xcode даже выдаст вам предупреждения, если вы забудете реализовать некоторые методы.
Лучший способ состоит в том, чтобы удалить действие, связанное с нажатием клавиши CTRL+V в компонентах ActionMap.
Вы можете переопределять paste()
метод в JTextComponent
.
Самый простой способ это сказать: textComponent.setEditable(false);
Это отключает вырезание и вставку, но копирование все еще включено.