- (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说,启动方法并拨号?
答案 0 :(得分:5)
点击文本字段不应该导致某些操作。在我看来,这是糟糕的用户界面设计。为什么不在运行上述代码的字段旁边添加一个按钮?
答案 1 :(得分:2)
我同意St3fan一样,正常的TextField不应该通过点击来引起操作。我将暂时假设你有一个特殊的UITextField可以不可编辑,然后看起来像UILabel
,格式看起来像一个超链接。这样的UI可能是正确的。点击一个看似可编辑但实际打电话的文本字段当然是不正确的。
您可以实施UITextFieldDelegate
协议并关注textFieldShouldBeginEditing:
。由于此文本字段不可编辑,显然您应该返回NO。
您可以使用其叠加视图(leftView
或rightView
在文本字段内添加“调用”按钮;请在正确的UE上阅读这些文档。
您可以继承UITextField
以覆盖touchesBegan:withEvent
,touchesEnded:withEvent:
和touchesCancelled:withEvent:
来自行处理。请记住:您必须收到touchesBegan
和touchesEnded
之间没有touchesCancelled
才能认为是触摸。切勿仅根据touchesBegan
启动操作。