gpt4 book ai didi

iOS/UIAlertView 中的 UITextField

转载 作者:行者123 更新时间:2023-11-28 23:15:14 24 4
gpt4 key购买 nike

当用户按下我的“导入”按钮时,他们必须能够输入一个 URL,然后他们可以“确定”或“取消”。

我该怎么做?

显然,我可以创建一个包含文本字段和 2 个按钮的新 View 。但这似乎编码过度了。

我发现的一个解决方案涉及将 UITextField ‘破解’到 UIAlertView 中:http://iphone-dev-tips.alterplay.com/2009/12/username-and-password-uitextfields-in.html

(编辑:更好——http://www.iphonedevsdk.com/forum/iphone-sdk-development/1704-uitextfield-inside-uialertview.html#post10643)

这看起来真的很丑。这显然是黑客攻击。

谁能提供更好的解决方案(或者甚至更好地实现相同的解决方案路径)?

最佳答案

好的,经过大量挖掘,结果如下。

首先,将“UITextField UIAlertView”放入 SO 的搜索中会返回数十个匹配项。

事实证明有一种方法可以做到这一点,Need new way to add a UITextField to a UIAlertView 但它是私有(private) API :|

几乎所有其他解决方案都涉及破解 UIAlertView,这很丑陋: http://junecloud.com/journal/code/displaying-a-password-or-text-entry-prompt-on-the-iphone.html
http://iphone-dev-tips.alterplay.com/2009/12/username-and-password-uitextfields-in.html
https://github.com/josecastillo/EGOTextFieldAlertView/
How to move the buttons in a UIAlertView to make room for an inserted UITextField?
^ MrGando 的回答很简洁
http://iphonedevelopment.blogspot.com/2009/02/alert-view-with-prompt.html
Getting text from UIAlertView

我找到的唯一合适的解决方案(即从 UIView 从头开始​​编码)在这里:https://github.com/TomSwift/TSAlertView

这就是它所需要的:

- (IBAction) importTap
{
TSAlertView* av = [[[TSAlertView alloc] init] autorelease];
av.title = @"Enter URL";
av.message = @"";

[av addButtonWithTitle: @"Ok"];
[av addButtonWithTitle: @"Cancel"];


av.style = TSAlertViewStyleInput;
av.buttonLayout = TSAlertViewButtonLayoutNormal;
av.delegate = self;

av.inputTextField.text = @"http://";

[av show];
}

// after animation
- (void) alertView: (TSAlertView *) alertView
didDismissWithButtonIndex: (NSInteger) buttonIndex
{
// cancel
if( buttonIndex == 1 )
return;

LOG( @"Got: %@", alertView.inputTextField.text );
}

和 Presto!

enter image description here

关于iOS/UIAlertView 中的 UITextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6735968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com