私のアプリには次のようなものがあります:
- (IBAction)backgroundTouch:(id)sender
{
[businessDescription resignFirstResponder];
[self.view endEditing:YES];
}
使用する2行のどちらが優れているかわからないため、両方を使用します:)テキスト領域が強調表示され、ユーザーが背景を押したときに機能します。
ただし、ユーザーは常に背景を押すとは限らず、入力しようとしている次の要素など、他のページ要素を押すこともあります。
スクリーンショットでは、テキスト領域の下に次の要素があり、そこをクリックしてもキーボードが非表示になりません。ユーザーがさまざまなページ要素をクリックしたとき、およびテキスト領域が強調表示されていないときに、キーボードを非表示にするのを手伝ってくれる人はいますか?
これが私の.hファイルです:
@interface PlanBusinessController : UIViewController
@property (weak, nonatomic) IBOutlet UITextView *businessDescription;
- (IBAction)submitBusiness:(id)sender;
@property (weak, nonatomic) IBOutlet UIButton *buttonProperty;
@property (weak, nonatomic) IBOutlet UITextField *personName;
@property (weak, nonatomic) IBOutlet UITextField *personEmail;
@property (weak, nonatomic)
IBOutlet UISwitch *privacy;
@property (weak, nonatomic) IBOutlet UISwitch *wantHelp;
- (IBAction)helpToggle:(id)sender;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *emailLabel;
@property (weak, nonatomic) IBOutlet
UIButton *test;
@終わり
これが私の.m宣言です:
#import "PlanBusinessController.h"
@interface PlanBusinessController ()
@end
@implementation PlanBusinessController
@synthesize nameLabel;
@synthesize emailLabel;
@synthesize businessDescription;
@synthesize buttonProperty;
@synthesize personName;
@synthesize personEmail;
@synthesize privacy;
@synthesize wantHelp;
@synthesize test;
-(void)touchesBegan:(NSSet*)touches
{
UITouch *touch=[touches anyObject];
UIView *view=touch.view;
if (![view isEqual:businessDescription])
{
//[businessDescription resignFirstReponder];
}
}
- (IBAction)backgroundTouch:(id)sender
{
[businessDescription resignFirstResponder];
[self.view endEditing:YES];
}
ありがとう!