我使用UIMenuController在textview中剪切了一个文本,我想把它粘贴到另一个地方。但UIPasteBoard字符串永远不会得到正确的价值。仅供参考,它只是在剪切过程中发生,但复制中没有问题。
在示例中: 我复制了“XYZ”并粘贴它,UIPasteBoard字符串包含正确的值,有“XYZ”
然后,我想剪切“ABC”并粘贴它,但是UIPasteBoard字符串包含错误的值,它是“XYZ”而不是“ABC”,而xcode输出给我一个文本Webcore NSBeep()!
我不明白为什么会发生这种情况,有人能给我一些线索吗?谢谢
更新
我只使用canPerformAction方法:
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender{
return [super canPerformAction:action withSender:sender];
}
答案 0 :(得分:2)
这是您应该如何使用简单文本设置粘贴板:
[[UIPasteboard generalPasteboard] setString:@"XYZ"];
UIMenuController
:UIMenuItem * copy = [[UIMenuItem alloc] initWithTitle:@"Copy Text" action:@selector(copyText:)];
UIMenuController * actionMenu = [UIMenuController sharedMenuController];
[actionMenu setMenuItems:[NSArray arrayWithObjects: copy, nil]];
[actionMenu setTargetRect:someButton.frame inView:someButton.superview];
[actionMenu setArrowDirection:UIMenuControllerArrowDefault];
[actionMenu setMenuVisible:YES animated:YES];
-(void)copyText:(id)sender {
UIButton * button = (UIButton*)sender;
[[UIPasteboard generalPasteboard] setString:button.titleLabel.text];
}
答案 1 :(得分:-1)
在示例中:我复制了“XYZ”并将其粘贴,即UIPasteBoard字符串 包含正确的值,有“XYZ”
然后,我想剪切“ABC”并粘贴它,但是UIPasteBoard字符串 包含错误的值,它是“XYZ”而不是“ABC”,以及xcode输出 给我一个文字 Webcore NSBeep()!
答案: Webcore NSBeep()!因为“ABC”没有被复制到你的剪贴板中并且通过哔哔声通知错误(恕我直言,这不是通过任何平台通知错误的明智方式,它可能是任何视觉指示)
请注意:NSBeep()是iPhone上不存在的ApplicationKit框架的一部分。