【问题标题】:UIPasteBoard string never get a right value after cut a text剪切文本后,UIPasteBoard 字符串永远不会得到正确的值
【发布时间】:2012-04-25 03:43:44
【问题描述】:

我已经使用 UIMenuController 在文本视图中剪切了一个文本,我想将它粘贴到另一个地方。但是 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];
}

【问题讨论】:

  • 显示您用于剪切和粘贴的代码以及这些事务之间的任何代码(与此问题相关)。
  • @WrightsCS 我更新了我的问题,你知道什么是 Webcore NSBeep()!什么意思?

标签: ipad uiwebview uitextview cut uipasteboard


【解决方案1】:

这就是您应该使用简单文本设置粘贴板的方式:

[[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];
}

【讨论】:

  • 我要把它放在哪里?
  • 没有。我不确定你还有什么其他代码,菜单是由你以某种方式调用的。无论是 IBAction 还是其他。
  • 所以,我必须创建一个 UIMenuController 的子类?
  • 我没有在我的代码中调用uimenucontroller,菜单控制器出现在我选择文本后
  • 如果您使用系统菜单复制/粘贴,那么 iOS 应该会处理所有这些。
【解决方案2】:

在示例中:我复制了“XYZ”并将其粘贴,即 UIPasteBoard 字符串 是否包含正确的值,有“XYZ”

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

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

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

【讨论】:

  • 谢谢你的回答,你能告诉我如何解决这个问题吗?
猜你喜欢
  • 2021-11-09
  • 2011-04-13
  • 2014-03-14
  • 2016-10-12
  • 2011-11-03
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多