Как сделать функцию копирования / вставки программно в iphone? - PullRequest
40 голосов
/ 08 ноября 2011

У меня есть текстовое представление с некоторым текстом и кнопка копирования в этом представлении,

Когда пользователь вводит какой-либо текст и нажимает кнопку копирования, ему необходимо скопировать этот текст и вставить этот текст в любое место.

Я знаю, что в iOS есть контроллер меню копирования / вставки по умолчанию, но я хочу сделать эту функцию одним нажатием кнопки. Я думаю, что есть UIPasteboard для этой функции, но я не знаю, как ее использовать.

Ответы [ 5 ]

115 голосов
/ 08 ноября 2011

Чтобы скопировать с кнопки, нажмите:

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

Чтобы вставить с кнопки, нажмите:

- (IBAction)paste {
    UIPasteboard *pb = [UIPasteboard generalPasteboard];
    textView.text = [pb string];
}
11 голосов
/ 08 июня 2016

Swift

Это версия принятого ответа Swift.

Копировать

UIPasteboard.general.string = myTextView.text

Вставить

if let myString = UIPasteboard.general.string {
    myTextView.insertText(myString)
}
7 голосов
/ 16 июля 2012

Для разработчиков, использующих MonoTouch, вот две строки, которые я использовал для выполнения задачи в C #.

Ответ iscavenger, предоставленный на этот вопрос, послужил моделью для моего ответа (после того, как я успешно реализовал его в моем проекте; -)

UIPasteboard clipboard = UIPasteboard.General;
clipboard.String =  "string being added to clipboard";
6 голосов
/ 05 сентября 2013

Не уверен, почему мы не можем просто использовать:

[theTextView paste:nil];

согласно UIResponder docs

4 голосов
/ 08 ноября 2011

Я подозреваю, что вы можете относительно легко сделать то, что вы хотите, начиная с [UIPasteboard dataForPasteboardType:] метода .

Вот пример кода Apple, на который вы можете посмотреть:

http://developer.apple.com/library/ios/#samplecode/CopyPasteTile/Introduction/Intro.html#//apple_ref/doc/uid/DTS40009040

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...