iOS Label 긴 복제, 붙여넣기, 잘라내기
@implementation CustomEditLabel
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
- (void)awakeFromNib{
[super awakeFromNib];
[self addLongPressEvent];
}
- (instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
[self addLongPressEvent];
}
return self;
}
- (void)addLongPressEvent{
self.userInteractionEnabled = YES;
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(actionS:)];
[self addGestureRecognizer:longPress];
}
- (void)actionS:(UILongPressGestureRecognizer *)gesture{
if (gesture.state == UIGestureRecognizerStateBegan) {
[self becomeFirstResponder];
UIMenuItem *menuItem1 = [[UIMenuItem alloc] initWithTitle:@" " action:@selector(copyS:)];
UIMenuItem *menuItem2 = [[UIMenuItem alloc] initWithTitle:@" " action:@selector(pasteS:)];
UIMenuItem *menuItem3 = [[UIMenuItem alloc] initWithTitle:@" " action:@selector(cutS:)];
UIMenuController *menuC = [UIMenuController sharedMenuController];
menuC.menuItems = @[menuItem1, menuItem2, menuItem3];
menuC.arrowDirection = UIMenuControllerArrowUp;
if (menuC.menuVisible) {
// NSLog(@"menuC.menuVisible -- %d", menuC.menuVisible);
return ;
}
[menuC setTargetRect:self.frame inView:self.superview];
[menuC setMenuVisible:YES animated:YES];
}
}
- (BOOL)canBecomeFirstResponder{
return YES;
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender{
if ( action == @selector(copyS:) || (action == @selector(pasteS:) && [UIPasteboard generalPasteboard].string) || action == @selector(cutS:) ) {
// NSLog(@" -- %@", [UIPasteboard generalPasteboard].string);
return YES;
}else{
return NO;
}
}
// ( )
- (void)cutS:(id)sender{
UIPasteboard *pboard = [UIPasteboard generalPasteboard];
pboard.string = self.text;
//
self.text = nil;
}
//
- (void)copyS:(id)sender{
UIPasteboard *pboard = [UIPasteboard generalPasteboard];
pboard.string = self.text;
}
//
- (void)pasteS:(id)sender{
UIPasteboard *pboard = [UIPasteboard generalPasteboard];
self.text = pboard.string;
}
@end
불완전한 점이 있으면 잘 부탁드립니다...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.