【问题标题】:ios5 , TSAlertView don't pop up, who can tell me why?ios5 , TSAlertView 不弹出,谁能告诉我为什么?
【发布时间】:2011-11-27 15:57:36
【问题描述】:

它是一个单视图应用程序,我只是在它上面添加一个按钮 当我单击按钮时,它将显示键盘。 而且我无法在 onBtn 函数中自动释放 TSAlertView。 谁能告诉我为什么,我真的很困惑。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIButton *btn  = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake(30, 30, 100., 50);
    [btn setTitle:@"Test" forState:UIControlStateNormal];
    [btn addTarget:self action:(@selector(onBtn:)) forControlEvents: UIControlEventTouchUpInside];
    [btn setBackgroundColor:UIColor.greenColor];
    [self.view addSubview:btn];
}

-(void)onBtn:(id)sender{
    TSAlertView* av = [[TSAlertView alloc] init];
    av.title = @"Test";
    av.message = @"This is a test";
    [av addButtonWithTitle:@"cancel"];
    [av addButtonWithTitle:@"rename"];
    av.style =TSAlertViewStyleInput;
    av.buttonLayout = TSAlertViewButtonLayoutNormal;
    av.usesMessageTextView =NO;
    av.width = 0.0;
    av.maxHeight = 0.0;
    [av show];
}

【问题讨论】:

  • TSAlertView 默认为普通视图。您的代码中必须有其他原因导致此问题。你能展示你的 onBtn 方法的其余部分吗?
  • @Havt 我已经发布了剩下的 onBtn 方法,请帮帮我,谢谢
  • 键盘出现是因为某个需要键盘的 UI 对象已成为第一响应者。

标签: iphone uibutton ios5 xcode4.2


【解决方案1】:

您将AlertView 的样式设置为Input,它会将其设置为第一响应者并显示键盘。

av.style =TSAlertViewStyleInput;

尝试另一种风格。 ;)

【讨论】:

  • 感谢您的建议。我在 TSAlertView 中找到,它放弃了文本字段 FirstResponder。而现在的问题是当点击按钮时,它不会弹出警报视图,它只是显示键盘。
  • @Jane_Meng 我试过作者给的Demo,连resignFirstResponder注释掉都可以。关键是av.style = _hasInputFieldSwitch.on ? TSAlertViewStyleInput : TSAlertViewStyleNormal;。如果你打开InputFieldSwitch,它将使用 TSAlertViewStyleInput 并显示键盘,否则,只显示 alertView 正常(在这种情况下,使用样式:TSAlertViewStyleNormal)。
  • 顺便说一句,您可以下载并自己测试。 ;)
  • 是的,你是对的,非常感谢。现在我知道为什么它显示键盘了。但是当我点击按钮时,我没有弹出alertView。我对此一无所知。你有什么想法吗?
  • 嗨@Jane_Meng,你的代码有什么变化?也许您可以在onBtn: 中打印一个日志以显示它是否被调用。然后确保在单击按钮时调用[av show]; 以显示警报视图。
【解决方案2】:

我没有使用过 TSAlertView,但是在浏览完代码之后,你尝试了一个 hack。致电 show 后,请尝试让第一响应者辞职:

[av show];
[av.inputTextField resignFirstResponder];

这可能有效,也可能无效。如果没有,并且您确实需要隐藏键盘,您可能需要修改 TSAlrtView 类本身中有关通知的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-25
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 2023-02-08
    • 2013-05-29
    相关资源
    最近更新 更多