Sto tentando un editor di testo RTF (con capacità di esportazione HTML) per un'applicazione iPhone su cui sto lavorando e ho deciso di utilizzare il supporto WebKit di iOS 5 per contentEditable
/designMode
. Ho colpito un muro con un problema che si sta rompendo per quello di cui ho bisogno. Quando si modifica il contenuto in UIWebView, non vi è uno scorrimento automatico per seguire il cursore, ad esempio, in UITextView. Durante la digitazione, il cursore continua sotto scrollView e l'utente deve scorrere manualmente verso l'alto.Scorrimento automatico quando contentEditable/designMode in una UIWebView
Ecco alcuni codice rilevante:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *string = @"document.body.contentEditable=true;document.designMode='on';void(0)";
[webView stringByEvaluatingJavaScriptFromString:string];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
}
Delle idee come risolvere questo problema? Non sono sicuro che ciò avvenga anche in Safari o solo nell'implementazione di WebKit di UIWebView
.
Se si verifica questo problema, assicurarsi di andare a https://bugreport.apple.com e duplicare rdar: // 16455638.
Voglio esplorare questo percorso, ma sono preoccupato perché quelle sono classi private che penso (non molto documentate). Hai avuto problemi quando hai inviato questa app? Esistono modi "sicuri" per fare questo e cose da evitare? Ad esempio, devi creare un UIWebView e quindi riparare le visualizzazioni, o creare direttamente queste altre classi, per evitare il rifiuto dell'app store? – eselk
@eselk Usiamo molti trucchi, come il metodo swizzling, ISA swizzling, ecc. In questo caso, è molto più semplice. Prendiamo la sottoview dalla vista scroll, che è esposta in API pubbliche e la aggiungiamo ad un'altra scrollview, che è sotto il nostro controllo. –
@LeoNatan puoi scrivere un codice per lo stesso? – iDhaval