0

私は問題があります。電話番号を含む 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];

}

しかし、メソッドを開始してダイヤルするために、テキストフィールドに触れたときにどのように言うことができますか?

4

2 に答える 2

5

テキスト フィールドをタップしても、なんらかのアクションが発生することはありません。私の意見では、それは悪いユーザー インターフェイスの設計です。上記のコードを実行するフィールドの横にボタンを追加してみませんか?

于 2010-02-11T13:33:17.040 に答える
2

通常の TextField がタップによってアクションを引き起こすべきではないという St3fan に同意します。UILabelここでは、編集不可にすることができ、ハイパーリンクのようにフォーマットされたのように見える特別な UITextField があると仮定します。そのような UI は正しいかもしれません。編集可能なように見えて実際に電話をかけるテキスト フィールドをタップすると、もちろん正しくありません。

UITextFieldDelegateプロトコルを実装して、 textFieldShouldBeginEditing:. このテキスト フィールドは編集できないため、当然 NO を返す必要があります。

オーバーレイ ビューを使用して、テキスト フィールド内に「通話」ボタンを追加できます (leftViewまたはrightView、これらについては正しい UE のドキュメントを参照してください)。

サブクラス化UITextFieldしてオーバーライドしtouchesBegan:withEvent、タッチを自分で処理できます。覚えておいてください:それをタッチと見なすには、それらの間にa なしで aを受け取る必要があります。のみに基づいてアクションを起動しないでください。touchesEnded:withEvent:touchesCancelled:withEvent:touchesBegantouchesEndedtouchesCancelledtouchesBegan

于 2010-02-11T14:29:41.413 に答える