【问题标题】:How to do copy/paste function programmatically in iphone?如何在 iphone 中以编程方式执行复制/粘贴功能?
【发布时间】:2011-11-08 04:29:13
【问题描述】:

我有一个文本视图,其中包含一些文本和一个复制按钮,

当用户输入一些文本并按下复制按钮时,它需要复制该文本并将该文本粘贴到他想要的任何位置。

我知道 iOS 中有一个默认的复制/粘贴菜单控制器,但我想通过单击按钮来执行此功能。我觉得有UIPasteboard可以做这个功能,但是不知道怎么用。

【问题讨论】:

    标签: ios iphone copy-paste


    【解决方案1】:

    从按钮单击复制:

    - (IBAction)copy {
        UIPasteboard *pb = [UIPasteboard generalPasteboard];
        [pb setString:[textView text]];
    }
    

    从按钮单击粘贴:

    - (IBAction)paste {
        UIPasteboard *pb = [UIPasteboard generalPasteboard];
        textView.text = [pb string];
    }
    

    【讨论】:

    • 在文本视图中只选择了部分文本。如何仅复制和粘贴所选内容而不是复制整个内容。
    • 如果您愿意总是替换 textview 的现有内容,这将起作用。如果要粘贴到光标位置,这还不够。
    【解决方案2】:

    斯威夫特

    这是已接受答案的 Swift 版本。

    复制

    UIPasteboard.general.string = myTextView.text
    

    粘贴

    if let myString = UIPasteboard.general.string {
        myTextView.insertText(myString)
    }
    

    【讨论】:

      【解决方案3】:

      对于使用 MonoTouch 的开发人员,这里是我用来在 C# 中完成任务的两行代码。

      为这个问题提供的答案是我的答案的模型(在我在我的项目中成功实现它之后;-)

      UIPasteboard clipboard = UIPasteboard.General;
      clipboard.String =  "string being added to clipboard";
      

      【讨论】:

      • 声明显式变量剪贴板没有太大意义。如果您内联 UIPasteboard.General 会缩短两倍 :)
      • 是明确的,例如缘故......但我也喜欢单线。 ;-)
      【解决方案4】:

      不知道为什么我们不能简单地使用:

      [theTextView paste:nil];
      

      根据UIResponder docs

      【讨论】:

        【解决方案5】:

        【讨论】:

        • 在您的原始问题中添加一些代码,显示您如何触发按钮操作,然后使用 [UIPasteboard dataForPasteboardType:] 方法从粘贴板上获取数据。如果它仍然不适合你,我可以尝试编辑我的答案,向你展示它是如何工作的。
        • 我把它放在我的代码中,但是在点击复制按钮后,应用程序崩溃了,-(IBAction)_clickbtncopynotes:(id)sender { [UIPasteboard dataForPasteboardType:textView.text]; }
        • 这不是调用代码的方式(它只是描述您可能使用的方法的标准方式)。您可能需要执行类似textView.text = [[UIPasteboard generalPasteboard] dataForPasteboardType: @"public.utf8-plain-text "] 的操作。请仔细查看我指向您的 Apple 示例,看看他们如何从粘贴板中检索数据。
        • 请查看我的评论以获取之前的答案并尝试回答
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-25
        • 2013-12-15
        相关资源
        最近更新 更多