Pergunta

eu tenho um problema. Eu tenho implementado um UITextField que contém um phonenumber, então eu tenho implementado o método a seguir para chamar o número de telefone:

- (void)rufeAn{
NSString *prefix = (@"tel://");
UIApplication *app = [UIApplication sharedApplication];
NSString *dialThis = [NSString stringWithFormat:@"%@%@", prefix, map.kordinate.telefon];
NSURL *url = [NSURL URLWithString:dialThis];
[app openURL:url];

}

Mas como posso dizer ao textField quando eu tocar nele, para iniciar o método e discar?

Foi útil?

Solução

Eu concordo com St3fan que um TextField normais nunca deve causar uma ação tocando. Vou assumir por um momento que você tem um UITextField especial que pode ser feito não editável e, em seguida, se parece com um UILabel, formatado para olhar como um hyperlink. UI tal poderia ser correta. Tocar em um campo de texto que parece que é editável, mas, na verdade, faz um telefonema seria, evidentemente, incorreta.

Você poderia implementar o protocolo UITextFieldDelegate e prestar atenção para textFieldShouldBeginEditing:. Uma vez que este campo de texto não é editável, obviamente, você deve retornar NO.

Você pode adicionar uma "chamada" botão dentro do campo de texto usando seus pontos de vista de sobreposição (leftView ou rightView; leia os documentos na UE correto para estes).

Você poderia subclasse UITextField para touchesBegan:withEvent override, touchesEnded:withEvent: e touchesCancelled:withEvent: para lidar com o toque sozinho. Lembre-se: você deve receber uma touchesBegan e touchesEnded sem touchesCancelled entre eles, a fim de considerá-lo um toque. Nunca dispare uma ação com base apenas em touchesBegan.

Outras dicas

Tocar em um campo de texto nunca deve resultar em alguma ação. Na minha opinião que é design de interface de usuário ruim. Por que você não adiciona um botão ao lado do campo que executa o código acima?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top