Это сработало для меня.
Подкласс UILabel и переопределить эти методы:
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (BOOL)canPerformAction:(SEL)action
withSender:(id)sender
{
return (action == @selector(copy:));
}
- (void)copy:(id)sender {
[[UIPasteboard generalPasteboard] setString:self.text];
}
Добавить Жест в ярлык для обнаружения крана.
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(LongPressDetected:)];
[_messageLabel addGestureRecognizer:longPress];
ручки жест событие, представляют собой UIMenuController с желаемой рамой:
- (void)LongPressDetected:(UILongPressGestureRecognizer*)gesture {
[_messageLabel becomeFirstResponder];
[[UIMenuController sharedMenuController] setTargetRect:_messageLabel.bounds inView:_messageLabel];
[[UIMenuController sharedMenuController] setMenuVisible:YES animated:NO];
}
UILabel становится первым ответчиком? Что вы хотите, чтобы он ответил? – kennytm
Он наследуется от UIResponder, поэтому у него есть возможность. – Ben
Я использую чью-то библиотеку, которая делает вещи, когда объект с определенными свойствами становится первым ответчиком. Он также отправляет сообщения первому ответчику. Мне захочется связать все это с моим лейблом. –