sanchessd Postado 27 de janeiro de 2012 Denunciar Postado 27 de janeiro de 2012 (editado) no meu app fiz o seguinte, tenho uma TabBar, criei a classe info.h, info.m info.xib e setei ela para abrir em uma das Views do meu TabBar, até ai blz, criei no meu info.xib um botao do facebook, abrindo uma Modal (facebook.xib) da nova classe que criei no facebook.h coloquei: #import <UIKit/UIKit.h>@interface facebook : UIViewController <UIWebViewDelegate> { IBOutlet UIWebView *webViewFacebook; IBOutlet UIActivityIndicatorView *spinerFacebook;}@property(nonatomic,retain) IBOutlet UIWebView *webViewFacebook;-(IBAction)fechar:(id)sender;@end[/CODE]em facebook.m :[CODE]@synthesize webViewFacebook;-(IBAction)fechar:(id)sender{ [self dismissModalViewControllerAnimated:YES];}// ativa indicador- (void)webViewDidStartLoad:(UIWebView *)webView { [spinerFacebook startAnimating];}//desativa indicador- (void)webViewDidFinishLoad:(UIWebView *)webView { [spinerFacebook stopAnimating];}[/CODE][CODE]- (void)viewDidLoad{ [super viewDidLoad]; NSString *url_endereco = @"http://www.facebook.com"; NSURL *url = [NSURL URLWithString:url_endereco]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; [webViewFacebook loadRequest:requestObj]; // carrega pagina do facebook assim que a Modal é chamada[/CODE]declarei no facebook.xib minha WebView como delegate, para que os indicadores funcionem e conclui com todas ligação do IB,executei o programa e funcionou blz, exeto o teclado, quando minha Modal é chamada abre a pagina do facebook, quando clico nos campos para loguin a pagina rola corretamente até o campo, POREM O TECLADO NAO SOBE,fiz um progeto novo sem criar uma classe, colocando as funções direto no ViewController, e funcionou corretamente, mas no meu app original, o teclado nao funciona,criei as classes corretamente (UIViewController Subclass), ja revisei varias vezes,alguma dica ? Editado 27 de janeiro de 2012 por sanchessd
trindadde Postado 28 de janeiro de 2012 Denunciar Postado 28 de janeiro de 2012 (editado) Olá! Para que não falhe a chamada do teclado, vc deve implementar o Delegate das caixas de texto. No seu arquivo facebook.h, acrescente <UIWebViewDelegate, UITextFieldDelegate> Acrescentado o Delegate do UITextField no arquivo facebook.h, agora precisamos implementá-lo. No ViewDidLoad, no arquivo de implementação (facebook.m) acrescente: objeto_text_field.delegate = self; Note que no lugar de "objeto_text_field" vc deve colocar o nome de seu objeto (aquele que recebe entrada de texto). Implemente, ainda no arquivo facebook.m, o seguinte método Delegate: -(void)textFieldDidBeginEditing:(UITextField *)textField { [textField becomeFirstResponder]; } Quando o usuário terminar a edição e pressionar (tap) Return, implemente o seguinte método Delegate para retirar o teclado: -(BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; } Note que o parâmetro textField refere-se ao objeto de entrada de texto em questão, não necessitando nomeá-lo. Isso deve resolver! Espero ter ajudado!! Editado 28 de janeiro de 2012 por trindadde
sanchessd Postado 28 de janeiro de 2012 Autor Denunciar Postado 28 de janeiro de 2012 Certo, mas na verdade nao tenho nenhum TextField, a interaçao com o usuario será somente com a propria pagina do facebook, nenhum TextField será colocado, sua solução funcionaria para caso eu fosse colocar um TextField para que o usuario digitasse a pagina para ser carregado, como se fosse um navegador. na WebView será carregada somente a pagina do facebook, e o usuario poderá navegar somente dentro dela, e nenhum outro site. como comentei no primeiro post, fiz um novo progeto separado com a WebView e a implementaçao direto no ViewController, e funciona ok. ja no meu progeto original, criei uma nova classe para incluir no meu tabBar, talves possa estar ai o problema, mas tudo que eu fiz documentei no primeiro post. Obrigado pela ajuda.
trindadde Postado 28 de janeiro de 2012 Denunciar Postado 28 de janeiro de 2012 (editado) Ok. Verifique se foi feito o Delegate da WebView com a classe, segurando control enquanto clica sobre a WebView e arrasta para o controller da classe, conforme a figura: Uma outra situação que me ocorre é se a WebView não está marcada para interação com o usuário. Nessa nova classe que vc criou, vc se atentou para o check box do WebView de interação com o usuário? Isso também pode ser ativado via código: minhaWebView.userInteractionEnabled = YES; Editado 28 de janeiro de 2012 por trindadde
trindadde Postado 28 de janeiro de 2012 Denunciar Postado 28 de janeiro de 2012 CORRIGINDO E COMPLEMENTANDO MINHA RESPOSTA: Ok. Verifique se foi feito o Delegate da WebView com a classe, segurando control enquanto clica sobre a WebView e arrasta para o controller da classe e verificando na guia Connections, conforme as figuras: Uma outra situação que me ocorre é se a WebView não está marcada para interação com o usuário. Nessa nova classe que vc criou, vc se atentou para o check box do WebView de interação com o usuário? Isso também pode ser ativado via código: minhaWebView.userInteractionEnabled = YES;
sanchessd Postado 28 de janeiro de 2012 Autor Denunciar Postado 28 de janeiro de 2012 sim, ja verifiquei isso, foi feito o delegate da WebView, e ja chequei também se a interação com o usuario está marcada, refiz um progeto novo com o mesmo codigo e funciona certinho, a unica coisa de diferente é que nao implementei o codigo direto no viewController que é gerado quando crio o progeto, criei uma classe nova para implementar o codigo. nao tem alguma outra regra pra quando se cria uma classe nova ? Na teoria acredito que nao, mas voce ja fez isso ? como passei no primeiro post, tenho uma tabBar, criei uma classe e vinculei ao TabBar, nessa classe na .xib tenho um botao do facebook, que nele abre uma Modal, no DidUnload coloquei o codigo para abrir na webView, como citado no primeiro post, A webView carrega tudo certo, mas nao abre o teclado nos campos do facebook, e ja tentei outros sites, mas também nao funciona!
trindadde Postado 29 de janeiro de 2012 Denunciar Postado 29 de janeiro de 2012 (editado) Pelo que vi no seu código, no arquivo ViewController.m em ViewDidLoad vc deve informar quem é o responsável por implementar os métodos delegados da WebView. Coloque em ViewDidLoad o seguinte: minhaWebView.delegate = self; e me diga se mudou alguma coisa. Caso não dê certo ainda, pensaremos em outras possibilidades. Editado 29 de janeiro de 2012 por trindadde
sanchessd Postado 29 de janeiro de 2012 Autor Denunciar Postado 29 de janeiro de 2012 fiz o que me disse mas nao resolveu. montei um progeto só com meu problema para que voce possa ver o que acontece; http://www.crocko.com/B485603CA1834629AF8F95690603DCC4/testeWebView.zip baixe esta simulaçao , e veja que o teclado nao sobe, fiz a mesma coisa que no progeto original!
Gabriel Vincent Postado 29 de janeiro de 2012 Denunciar Postado 29 de janeiro de 2012 fiz o que me disse mas nao resolveu. montei um progeto só com meu problema para que voce possa ver o que acontece; http://www.crocko.co...esteWebView.zip baixe esta simulaçao , e veja que o teclado nao sobe, fiz a mesma coisa que no progeto original! Dica: quando for passar arquivos use a ferramenta de anexo do fórum ou, se preferir fazer upload em um site, faça no mediafire, que é mais rápido pra você e pra gente, porque não temos que esperar 1,5 minutos para podermos baixar o arquivo.
sanchessd Postado 29 de janeiro de 2012 Autor Denunciar Postado 29 de janeiro de 2012 ok, proximos serao feitos dessa forma!
Gabriel Vincent Postado 29 de janeiro de 2012 Denunciar Postado 29 de janeiro de 2012 (editado) fiz o que me disse mas nao resolveu. montei um progeto só com meu problema para que voce possa ver o que acontece; http://www.crocko.co...esteWebView.zip baixe esta simulaçao , e veja que o teclado nao sobe, fiz a mesma coisa que no progeto original! Cara, não consegui ver o que você fez de errado, mas acho que tem a ver com criar um projeto vazio. Cria, do zero, um novo projeto com template de tabbar. Acho que assim você consegue. Aqui o que eu fiz: WebView.zip PS: Desculpa se pareci grosseiro quando disse "porque não temos que esperar 1,5 minutos para podermos baixar o arquivo. " Não foi no sentido de "não temos a obrigação de ficar esperando", foi com o sentido de "Usando o Mediafire não precisaremos esperar aquele minuto e meio". Editado 29 de janeiro de 2012 por Gabriel Vincent
sanchessd Postado 29 de janeiro de 2012 Autor Denunciar Postado 29 de janeiro de 2012 claro, sem problemas, estou aqui para aprender o melhor, a respeito do progeto, sim eu ja fiz um igual ao que voce postou sem o tabBar, e funcionou também, só que quando crio a tabBar , eu crio a classe Info e coloco em um dos itens do tabBar, dentro da classe Info abro a modal Facebook, que é onde o codigo está implementado, e ao abrir essa classe (facebook) o teclado nao funciona. realmente nao sei o que fazer, pq o codigo "supostamente" estaria certo.
Gabriel Vincent Postado 29 de janeiro de 2012 Denunciar Postado 29 de janeiro de 2012 claro, sem problemas, estou aqui para aprender o melhor, a respeito do progeto, sim eu ja fiz um igual ao que voce postou sem o tabBar, e funcionou também, só que quando crio a tabBar , eu crio a classe Info e coloco em um dos itens do tabBar, dentro da classe Info abro a modal Facebook, que é onde o codigo está implementado, e ao abrir essa classe (facebook) o teclado nao funciona. realmente nao sei o que fazer, pq o codigo "supostamente" estaria certo. É verdade... muito estranho mesmo. Mas esse é um problema muito claramente de stack, só não consigo entender onde está o problema...
sanchessd Postado 30 de janeiro de 2012 Autor Denunciar Postado 30 de janeiro de 2012 (editado) Até agora também não achei nada, qualquer solução é bem vinda! Editado 30 de janeiro de 2012 por sanchessd
trindadde Postado 31 de janeiro de 2012 Denunciar Postado 31 de janeiro de 2012 (editado) Então. Da mesma forma que já foi citado aqui, eu também não estou encontrando problemas com o seu código e seu projeto. Contudo, se funcionou fazendo através de uma nova classe, mantenha dessa maneira! É até mais adequado para seguir o paradigma do MVC Aliás, vc tentou migrar esse projeto para o ARC e StoryBoard? Tente fazer isso e ver se faz alguma diferença o gerenciamento automático da memória. Depois poste aqui se deu certo! Boa sorte! Editado 31 de janeiro de 2012 por trindadde
sanchessd Postado 2 de fevereiro de 2012 Autor Denunciar Postado 2 de fevereiro de 2012 Não consegui fazer funcionar ainda, estou preocupado. Cheguei até importar a API do facebook, faço loguin e tudo, mas quando abre a WebView nada do teclado aparecer!!!
leonardo.saragiotto Postado 6 de fevereiro de 2012 Denunciar Postado 6 de fevereiro de 2012 nas propriedades da sua WebView, na área da View, a propriedade User Interaction Enable está selecionada?
leonardo.saragiotto Postado 6 de fevereiro de 2012 Denunciar Postado 6 de fevereiro de 2012 nas propriedades da sua WebView, na área da View, a propriedade User Interaction Enable está selecionada? Foi mal, só agora li que isso já havia sido sugerido!
sanchessd Postado 7 de fevereiro de 2012 Autor Denunciar Postado 7 de fevereiro de 2012 Resolvi o problema e fica a sugestão para quem tiver o mesmo problema no AppDelegate.m no metodo applicationDidFinishLaunching coloquei: [window makeKeyAndVisible];[/CODE]e funcionou, demorei uma semana para solucionar, e felizmente funcionou !!
Posts Recomendados
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora