2010-02-11 70 views
0

我遇到问题。 我已经实现了一个包含PHONENUMBER一个的UITextField,然后我已实现了以下方法拨打的电话号码:从UITextField拨打电话的方法

- (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]; 

}

但我怎么能到文本框说的时候我就可以触摸,启动该方法并拨号?

我向所有的帮手致意!

回答

2

我同意St3fan一个正常的TextField不应该通过点击引起一个动作。我暂时假设你有一个特殊的UITextField,它可以被设置为不可编辑的,然后看起来像一个UILabel,格式化为超链接。这样的UI可能是正确的。点击看起来可以编辑但实际打电话的文本字段当然是不正确的。

您可以实施UITextFieldDelegate协议并观察textFieldShouldBeginEditing:。由于这个文本字段是不可编辑的,显然你应该返回NO。

您可以使用其覆盖视图(leftViewrightView;阅读有关这些文档的正确UE的文档)在文本字段内添加“呼叫”按钮。

您可以继承UITextField覆盖touchesBegan:withEventtouchesEnded:withEvent:touchesCancelled:withEvent:来自己处理触摸。请记住:您必须在它们之间收到touchesBegantouchesEnded而没有touchesCancelled以便将其视为触摸。切勿仅根据touchesBegan开火。

5

点击文本字段不应导致某些操作。在我看来,这是糟糕的用户界面设计。为什么不在运行上述代码的字段旁边添加一个按钮?