Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Postado (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 por sanchessd
  • Respostas 18
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado (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 por trindadde
Postado

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.

Postado (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:

webviewdelegate.png

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 por trindadde
Postado

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:

webviewdelegate.pngdelegate.png

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;

Postado

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!

Postado (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 por trindadde
Postado

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.

Postado (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 por Gabriel Vincent
Postado

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.

Postado

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...

Postado (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 por trindadde
Postado

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 !!

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 conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.



  • Estatísticas do Fórum

    • Total de Tópicos
      57.8k
    • Total de Posts
      467.9k
×
×
  • Criar Novo...