Xcode(iOS)には、ボタンとテキストフィールドを組み合わせた画面があります。ただし、見た目は異なります。ボタンをテキストフィールドのように見せることはできますか?または、テキストフィールドをボタンのように動作させる方法はありますか(押されたときに何らかのアクションを実行し、キーボードを起動しないでください)?
ありがとう
Xcode(iOS)には、ボタンとテキストフィールドを組み合わせた画面があります。ただし、見た目は異なります。ボタンをテキストフィールドのように見せることはできますか?または、テキストフィールドをボタンのように動作させる方法はありますか(押されたときに何らかのアクションを実行し、キーボードを起動しないでください)?
ありがとう
次のいずれかを試すことができます。
textFieldShouldBeginEditing:
UITextFieldDelegate
プロトコルメソッドの実装におけるあなたの見解を示してくださいサブクラス化もオプションですが、タスクが複雑になりすぎる可能性があります。
アクションを実行したいが、押されたときにキーボードを表示しない場合は、次の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
。
それらの1つをカスタマイズする必要があります...または両方
例:クラスを作成するCustomTextField:UITextField
このクラスでは使用します:
#import <QuartzCore/QuartzCore.h>
スタイルで遊ぶ
遅い答えですが、それでも。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;
}