0

と を追加UITextFieldしましたが、両方に入力UITextViewするUIWindowことはできません。どちらも、これらのフィールドに入力することを許可していません。また、キーボードでReturnキーを押しても、それを閉じることができません。

-(void)showAlert 
{
alertWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
alertView = [[UIView alloc] initWithFrame:CGRectMake(10, 115, 300, 230)];
alertWindow.windowLevel = UIWindowLevelAlert; // puts it above the status bar
alertView.center = CGPointMake(alertWindow.frame.size.width/2, alertWindow.frame.size.height/2);
alertView.backgroundColor = [UIColor whiteColor];
alertView.layer.borderWidth = 1.0;
alertView.layer.borderColor = [[UIColor whiteColor]CGColor];

UITextField *txt = ....
....
....
txt.delegate = self;
...
...
[alertView addSubview:txt];

UITextView *txtview = ...
....
....
txtview.delegate = self;
...
[alertView addSubview:txtview];

[alertWindow addSubview:alertView];
[alertWindow addSubviewWithZoomInAnimation:alertView duration:1.0 option:curveValues[0]];
[alertWindow setHidden:NO];
}

両方のデリゲート メソッドも宣言しました。そこにブレークポイントを配置し、そのメソッドがまだ呼び出されていない場合でもチェックしました。

アップデート -

textFieldShouldReturnデリゲート メソッド

- (BOOL) textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    [reserveView resignFirstResponder];
    [reserveWindow resignFirstResponder];
    [self.reserveWindow endEditing:YES];
    [reserveView endEditing:YES];
    return YES;
}
4

5 に答える 5

1

UIWindowからキーボードを閉じるには、これを試してください。

[self.window endEditing:YES];

ソース

于 2013-03-04T06:05:05.347 に答える
0

キーボードが自動的に閉じることはありません (Return キーを押しても!)。デリゲート メソッドでは、return/done/etc を押すたびにイベントを受け取ることに気付くでしょう。

誰かがリターン キーを押すたびにキーボードを閉じる簡単な方法は、メソッドを実装する- (BOOL)textViewShouldEndEditing:(UITextView *)textViewことです。

- (BOOL)textViewShouldEndEditing:(UITextView *)textView
{
    [textView endEditing:YES];
    return YES;
}

編集:あなたの投稿では、両方のデリゲート メソッドを宣言したと編集しました... 2 つ以上あるので、どのメソッドを実装したかを明確にできますか? http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.html#//apple_ref/occ/intf/UITextViewDelegate

于 2013-03-04T06:01:31.120 に答える
0

これを試して

それがテキストフィールドのデリゲートメソッドです:-

  • (BOOL)textFieldShouldReturn:(UITextField *)textField

    {

    [txtview resignFirstResponder];
    

    いいえを返します。

    }

于 2013-03-04T07:03:34.393 に答える
0

これを試して

- (void)viewDidLoad
{
  [super viewDidLoad];
  UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
  tapGesture.cancelsTouchesInView = NO;
  [self.window addGestureRecognizer:tapGesture];
  //[self.view addGestureRecognizer:tapGesture];
  [tapGesture release];
}
-(void)dismissKeyboard
{
[txt resignFirstResponder];
[textView resignFirstResponder];
}
于 2013-03-04T06:26:57.987 に答える