Przede wszystkim wiem, że Contentdeditable jest tylko IOS 5, którą rozliczałem - dajemy użytkownikom z funkcją IOS 5, aby umożliwić zbierającym się wklejanie tekstu za pomocą Contenteditable. Ta funkcja działa świetnie do tej pory wszystko, co chcę zrobić, to wtedy, gdy pojawi się widok, aby ustawić pole Contenteditable jako aktywne (wstępnie wybierz go), dzięki czemu pojawi się klawiatura, a użytkownik może rozpocząć wpisanie bezpośrednio. Oto lokalny plik HTML, którego używam do UIWebView

<html>
    <body>
        <div id="content" contenteditable="true" style="font-family: Helvetica">PLACEHOLDER</div>
    </body>
</html>

Próbowałem już korzystać z niektórych JavaScript, aby wykonać to za pomocą samouczków, które znalazłem dla zaznaczenia wprowadzania tekstu. Nie mogłem tego skontaktować, nawet gdy próbowałem przełączyć się na pole wprowadzania tekstu do testowania. Jest to prawdopodobnie ze względu na moje doświadczenie z Javasctut, więc jeśli jest to rozwiązanie, bądź wyraźny (jak jestem całkowicie nieznany z JavaScript).

Dzięki za wszelką pomoc

5
xizor 3 listopad 2011, 23:57

4 odpowiedzi

Najlepsza odpowiedź

Niestety nie możesz tego zrobić w mobilnym safari. Wierzę, że Apple zdecydował się ograniczyć to od dzielenia się, ponieważ podczas odwiedzasz niektóre witryny, jak na przykład Google, pole wyszukiwania zostanie natychmiast skoncentrowane. Byłoby to niezwykle irytujące dla użytkowników, jeśli każda strona poszła do, klawiatura pojawiła się. Na pulpicie zachowanie nie ma znaczenia, ale na urządzeniach mobilnych jest bardzo zauważalny.

Powiązane: Mobile Safari Autofokus Text

4
Community 23 maj 2017, 10:31

Teraz, jeśli ktoś chce to osiągnąć w IOS 6, może otworzyć klawiaturę iOS programową w ten sposób,

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    // keyboardDisplayRequiresUserAction available in iOS >= 6 
    if ([webView respondsToSelector:@selector(setKeyboardDisplayRequiresUserAction:)]) {
        webView.keyboardDisplayRequiresUserAction = NO;
    }
}

I wtedy,

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    // Assuming that you're using jquery. If not, use document.getElementById('YourInputElementID')
    NSString *evalStr = [NSString stringWithFormat:@"setTimeout( function(){$('#YourInputElementID').focus();},1000);"];
    [webView stringByEvaluatingJavaScriptFromString:evalStr];
}

Spowoduje to uruchomienie tego JavaScript po 1 ust. W przypadku bezpiecznej strony należy zadzwonić do kodu Uzyskania ostrości, gdy element ostrości został załadowany.

7
Humayun 10 styczeń 2013, 23:07

Możesz przywołać klawiaturę, jeśli jesteś w kontekście obsługiwania imprezy Click.

Na przykład

document.body.addEventListener('click', function() {
  content.focus();
}, false);

Powinno działać

2
Ryan Fioravanti 16 styczeń 2012, 23:29

Nie mam informacji o ContentDeaditable na IOS, ale myślę, że powinieneś być w stanie po prostu utworzyć zakres i dodać go do wyboru.

var input; // your contenteditable element
var range = document.createRange();
range.selectNodeContents(input);

var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
0
J. K. 3 listopad 2011, 20:44