1

Xcode(iOS)には、ボタンとテキストフィールドを組み合わせた画面があります。ただし、見た目は異なります。ボタンをテキストフィールドのように見せることはできますか?または、テキストフィールドをボタンのように動作させる方法はありますか(押されたときに何らかのアクションを実行し、キーボードを起動しないでください)?

ありがとう

4

4 に答える 4

5

次のいずれかを試すことができます。

  • テキストフィールドの上に透明な(画像のないカスタム)ボタンを配置し、それに必要なアクションを添付します
  • textFieldShouldBeginEditing: UITextFieldDelegateプロトコルメソッドの実装におけるあなたの見解を示してください

サブクラス化もオプションですが、タスクが複雑になりすぎる可能性があります。

于 2012-05-15T15:05:06.630 に答える
2

アクションを実行したいが、押されたときにキーボードを表示しない場合は、次のUITextFieldように実行できます。

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {

    // do here everything you want
    NSLog(@"Pressed on TextField!");

    [self.view endEditing:YES]; // Hide keyboard

    return NO;
}

この関数は、textFieldを押すたびに呼び出されます。

**委任 することを忘れないでくださいUITextField

注:これを使用すると、問題が発生します。キーボードが表示されている場合は非表示にならないため、を追加する必要があります-endEditing:YES

于 2012-05-15T15:40:49.443 に答える
0

それらの1つをカスタマイズする必要があります...または両方

例:クラスを作成するCustomTextField:UITextField

このクラスでは使用します:

  #import <QuartzCore/QuartzCore.h>

スタイルで遊ぶ

于 2012-05-15T15:07:24.013 に答える
0

遅い答えですが、それでも。UIButtonをUITextFieldのように見せるためにこれを行いました

@property (weak, nonatomic) IBOutlet UIButton *resolutionButton;

そしてviewDidLoadで:

dispatch_async(dispatch_get_main_queue(), ^{
    [[self.resolutionButton layer] setBorderColor: [UIColor colorWithWhite:0.6f alpha:0.6f].CGColor];
    self.resolutionButton.layer.cornerRadius = 5.0f;
    self.resolutionButton.layer.borderWidth = 0.5f;
}
于 2018-08-18T18:59:06.267 に答える