1

あるものが表示されたときにキーボードが自動的に表示されるようにしたいのですUITextViewが。現在、初めてUITextView表示されるとき、ユーザーはキーボードを表示するためにそれをタップする必要があります。その後のがUITextView自動的に表示されると、キーボードが表示されます。初めてUITextView登場したときにもこれを実現するにはどうすればよいですか?

-(void)displayComposeScreen
{
    [self.nameField resignFirstResponder]; //This is a different UITextView, but my issue doesn't change whether I leave this line in or take it out

    if (!self.textView)
    {
        self.textView = [[UITextView alloc] initWithFrame:CGRectMake(20, 20, 280, 150)]; //This is the UITextView with whose appearance I want the keyboard to appear automatically.
        self.textView.font = [UIFont fontWithName:@"Helvetica Neue" size:14];
        self.textView.delegate = self;
    }
    [self.textView becomeFirstResponder];
    self.textView.hidden=NO;
    if (self.ghhaiku.userIsEditing==NO)
    {
         self.textView.text = @"";
    }
    else
    {
        self.textView.text = self.ghhaiku.text;
    }
    [self.view addSubview:self.textView];
}

基本的に、このメソッドが最初に呼び出されたとき、ユーザーはself.textViewキーボードを表示するためにタップする必要があります。このメソッドの後続の呼び出しの場合と同様に、メソッドが呼び出されたときにキーボードが自動的に表示されるようにします。

4

4 に答える 4

3

あなたはコードを置くべきです

[self.textView becomeFirstResponder]

テキストビューをコントローラのビューに配置した後。

于 2012-12-18T05:31:38.210 に答える
2

あなたを助けたい

[textField performSelector:@selector(becomeFirstResponder) 
                withObject:nil 
                afterDelay:0.2f]

iOS 6では、-[UITextFieldbecomeFirstResponder]は-viewWillAppearでは機能しません: ( https://stackoverflow.com/users/1162777/antonによる質問へのコメント)

于 2013-01-17T16:19:22.730 に答える
0

textViewをアクティブにする場合は、次の行を試してください。

[self.textView becomeFirstResponder];
于 2012-12-18T04:56:17.117 に答える
-1
    [UIView animateWithDuration:0.0 animations:^{
        [self addSubview:textview];
    } completion:^(BOOL finished){
        [textview becomeFirstResponder];
    }];
于 2014-04-20T13:32:19.260 に答える