2014-10-05 12 views
8

Widziałem, że to pytanie zostało zadane kilka razy, ale nikt nie wydaje się mieć odpowiedzi. Próbuję utworzyć funkcję autokorekty na niestandardowej klawiaturze, ale jestem całkowicie zagubiony, jak to zrobić. Apple podaje trochę dokumentacji, ale nie jest to zbyt szczegółowe. Wiem, że ma to coś wspólnego z danymi UILexicon, ale nie jestem pewien, co z tym zrobić i jak go użyć do poprawienia ciągów tekstu, które pisze użytkownik.Używanie UILexicon do implementacji autokorekty w rozszerzeniu klawiatury iOS 8

Każda pomoc zostanie bardzo doceniona.

co znalazłem do tej pory:

let controller = UIInputViewController() 

    controller.requestSupplementaryLexiconWithCompletion({ 
     lexicon in 

     println(lexicon.description) 

    }) 

Ale to jest tak daleko, jak stałam. Nie wiem, co robić dalej.

+2

Dzięki za ponowne zadawanie podobnego pytania, które napisałem - mam nadzieję, że ktoś odpowie! – agf119105

Odpowiedz

9

Zadajesz bardzo trudne pytanie. W skrócie, nie ma wbudowanego dostępu do autokorekty na iOS8; nie ma również dostępu do interfejsów API w systemie iOS, które pozwalają systemowi na takie działania, jak przedstawienie czerwonego efektu "możliwego błędu" lub na inne aspekty działania autokorekty, takie jak okno dialogowe sugestii w miejscu (w iOS 7 lub jeśli nie widać paska sugestii) lub "poprawi" niebieskie tło (w systemie iOS 8).

rzeczy nie można zrobić:

dotted red line

wskaźnik błędu w miejscu

in-place suggestion

okno Autokorekta w miejscu

will correct

sugestie wskaźnik bar Autokorekta

czego może zrobić, to napisać swój własny silnik autokorekty, od podstaw, w tym zarówno własnego przetwarzania tekstu i analizy oraz własnymi idiomów interfejsu użytkownika. To wszystko musi być zrobione z ograniczeniem, że nie możesz rysować poza granicami klawiatury i nie możesz modyfikować niczego na ekranie. Robi to wiele klawiatur innych firm, takich jak minuum i swiftkey (zrzeczenie się: pracuję na minuum), ale jest to niepotrzebna ilość pracy. Jeśli chcesz się z tym bawić, dobrym miejscem do rozpoczęcia może być klasa UITextChecker, chociaż automatyczna korekta jest ostatecznie problemem odmiennym od sprawdzania pisowni.

UILexicon jest przydatny tylko wtedy, gdy już zostały zaimplementowane; wszystko, co naprawdę oferuje, to lista słów, których możesz użyć do uzupełnienia dowolnego słownika, którego używasz, a także do wprowadzenia dowolnych skrótów tekstowych, które użytkownik mógł dodać w ustawieniach systemowych. Sam w sobie nie wystarczy zbudować systemu autokorekty.

Uzupełnienie: How to Write a Spelling Corrector jest bardzo mały esej/poradnik Petera Norvig które można znaleźć ciekawe, i że polecam, nawet jeśli jesteś nie próby zapisu auto-poprawne.

+2

Kiedy początkowo zadawałem to pytanie, codziennie sprawdzałem odpowiedź i ostatecznie się poddałem. W efekcie stworzyłem bardzo prymitywną autokorektę, pisząc na klawiaturze bez patrzenia na nią, a następnie dodając wszystkie błędne słowa jako klucz na Plistie z właściwym słowem, ponieważ jest to wartość. Następnie każde słowo wpisane, sprawdza, czy ma parę. Wcale nie jest wydajna i na zawsze dodaje nowe słowa, ale działa! Dodany artykuł jest DOKŁADNIE tym, czego szukałem od zawsze. Dziękuję bardzo za odpowiedź. Moja klawiatura to układ Dvoraka, jeśli o to ci chodzi! – SomeGuy

Powiązane problemy