【问题标题】:UITextView keyboard dismissed by clicking UIAlertView OK button iphone app?通过单击 UIAlertView OK 按钮 iphone 应用程序解除 UITextView 键盘?
【发布时间】:2012-10-01 10:38:07
【问题描述】:

我正在开发基于消息传递的 iPhone 应用程序。在我的 UIViewController 之一中,我正在显示 UITextView 键盘并从 web 服务中收到一些警报消息。

当我在 UIAlertView 中显示警报消息时,通过单击 UIAlertView 中的“确定”按钮来关闭 UITextview 键盘。我试图将 becomeFirstResponder 放在 UIAlertView 委托中,但仍然键盘关闭。供您参考,

-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
   [messageTextView becomeFirstResponder]; // Here again I am giving becomeFirstResponder to my UITextView

   int alertMessageArrayCount = [alertMessageArray count];
    if (messageAlertView) 
    {
        if (messageAlertCount < alertMessageArrayCount)  // These codes to show my all messages in UIAlertView one by one..
        {
            messageAlertCount = messageAlertCount + 1;

            arrayObjectValue = arrayObjectValue + 1;

            NSString *alertMessage = [alertMessageArray objectAtIndex:arrayObjectValue];

            messageAlertView = [[UIAlertView alloc] initWithTitle:@"Alert" message:alertMessage delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
            [messageAlertView show];
            [messageAlertView release];
        }
    }
}

谁能帮忙解决这个问题?

编辑:

messageTextView = [[UITextView alloc] initWithFrame:CGRectMake(35, 5, 210, 30)];
messageTextView.delegate = self;
messageTextView.backgroundColor = [UIColor clearColor];
messageTextView.clipsToBounds = NO;
messageTextView.font = [UIFont fontWithName:@"Helvetica" size:14];
[self.view addSubView:messageTextView];

【问题讨论】:

  • 我没有使用 IBOutlet 仅以编程方式使用朋友。
  • @Mehul 我已经编辑了我的问题并添加了代码。谢谢。
  • 要关闭键盘,我认为您应该使用 [messageTextView resignFirstResponder];
  • @NULL 我不想解雇键盘朋友。我不想在 UIAlertView 中单击 OK 按钮时关闭键盘。谢谢。

标签: iphone ios keyboard uitextview uialertview


【解决方案1】:

在您的 UIAlertView 委托方法中尝试如下所示的 [messageTextView becomeFirstResponder];

if([messageTextView resignFirstResponder]){
    [messageTextView becomeFirstResponder];
    }

【讨论】:

  • 它不是工作的朋友。我不知道我的代码中发生了什么。
【解决方案2】:

将 alertview 的委托写入“nil”而不是 self。

 messageAlertView = [[UIAlertView alloc] initWithTitle:@"Alert" message:alertMessage delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];

【讨论】:

  • 但我想在单击“确定”按钮后一一显示多个 uialertview,这就是我设置委托自己朋友的原因。
猜你喜欢
  • 2011-06-07
  • 2015-03-13
  • 2016-02-07
  • 2018-09-17
  • 1970-01-01
  • 2011-06-09
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多