2015-04-03 20 views
5

Implementuję niestandardową klawiaturę zawierającą tylko obrazy i chcę wysyłać obrazy do textDocumentProxy/elementów sterujących wprowadzaniem tekstu, takich jak widok tekstowy po kliknięciu obrazu, ale nie można go pominąć. do tej pory jestem w stanie wysłać tekst/ciąg znaków do elementów sterujących, ale nie obrazy.iOS: Niestandardowa klawiatura: chcę wysyłać obrazy do textDocumentProxy (Input controls)

Czy można wysyłać obrazy do elementów sterujących wprowadzania?

Wszelkie sugestie lub rozwiązania są bardzo cenne.

+0

znalazłeś jakieś rozwiązanie, jak to zrobić? – Ramakrishna

+0

Jeszcze nie kumpel ... Ten projekt jest teraz wstrzymany. –

Odpowiedz

8

Poniżej znajduje się kod do obrazu kopii w pasteboard

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://warp.povusers.org/images/test.png"]]; 
UIPasteboard *pasteBoard=[UIPasteboard generalPasteboard]; 
[pasteBoard setData:data forPasteboardType:@"public.png"]; 

Teraz zdaniem jest, że tworzenie niestandardowego rozszerzenia klawiatury w tym układzie można umieścić UIButton i że akcja przycisk wdrożyć powyższe PNG.

Dla lokalnego obrazu następującego po kodzie pomoc jest pełna i działa w moim przypadku.

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
NSData *imgData = UIImagePNGRepresentation(@"Your UIImage Here"); 
[pasteboard setData:imgData forPasteboardType:[UIPasteboardTypeListImage objectAtIndex:0]]; 

Więcej Uniform Type Identifiers you visit here i zmienić rodzaj kartonu.

Może to pomóc i rozwiązać problem.

Zmieniano

"Allow Full Access" w ustawieniach -> Klawiatura -> Klawiatura -> wybierz aplikację klawiatury -> Włącz przełącznik "Zezwalaj na pełny dostęp"

+0

Jak wkleić ten obraz do pola tekstowego, które użytkownik aktualnie edytuje? – smacdonald

+0

Po prostu przejdziesz do dowolnej aplikacji i po długim naciśnięciu przycisku pokazuje wklej –

+1

Righto. Dlatego użytkownik musi go wkleić. Miałem nadzieję, że jest sposób, aby zrobić to automatycznie. – smacdonald

1

Spróbuj w urządzeniu, możesz testować za pomocą aplikacji iMessage w urządzeniu. Domyślne widoki wejściowe, takie jak UITextView i UITextField, nie obsługują obrazów. Obsługują tylko łańcuchy.

Poniższy kod skopiuje obraz do obszaru roboczego.

let pb = UIPasteboard.generalPasteboard() 
let image: UIImage = UIImage(named: imgArray[indexPath.row])! 
let imgData: NSData = UIImagePNGRepresentation(image)! 
pb.setData(imgData, forPasteboardType: kUTTypePNG as String) 

Daj "Zezwalaj na pełny dostęp" dla klawiatury w ustawieniach. I dodaj RequestsOpenAccess do YES w pliku info.plist.

Powiązane problemy