从UITextField拨打电话的方法

时间:2010-02-11 13:31:18

标签: iphone uitextfield phone-call

我有一个问题。 我已经实现了一个包含phonenumber的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];

}

但是当我触摸它时,我怎么能对textField说,启动方法并拨号?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

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

您可以实施UITextFieldDelegate协议并关注textFieldShouldBeginEditing:。由于此文本字段不可编辑,显然您应该返回NO。

您可以使用其叠加视图(leftViewrightView在文本字段内添加“调用”按钮;请在正确的UE上阅读这些文档。

您可以继承UITextField以覆盖touchesBegan:withEventtouchesEnded:withEvent:touchesCancelled:withEvent:来自行处理。请记住:您必须收到touchesBegantouchesEnded之间没有touchesCancelled才能认为是触摸。切勿仅根据touchesBegan启动操作。