1

我已经使用 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];
}
4

2 回答 2

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];
}
于 2012-04-25T04:24:20.103 回答
-1

例如:我已经复制“XYZ”并粘贴它,UIPasteBoard 字符串包含正确的值,有“XYZ”

然后,我想剪切“ABC”并粘贴它,但是 UIPasteBoard 字符串包含错误的值,它仍然是“XYZ”而不是“ABC”,并且 xcode 输出给了我一个文本Webcore NSBeep()!

答案:Webcore NSBeep()!因为“ABC”没有复制到您的剪贴板中,并且通过哔哔声通知错误(恕我直言,这不是任何平台通知错误的明智方式,这将是任何视觉指示)

请注意:NSBeep() 是 iPhone 上不存在的 ApplicationKit 框架的一部分。

于 2012-06-22T14:52:17.150 回答