iOS / UITextField в UIAlertView - PullRequest
       27

iOS / UITextField в UIAlertView

0 голосов
/ 18 июля 2011

Когда пользователь нажимает мою кнопку «импорт», он должен иметь возможность ввести URL-адрес, который он может затем «ок» или «отменить».

Как мне это сделать?

Очевидно, я мог бы создать новый вид, содержащий текстовое поле и 2 кнопки.Но это похоже на кодирование.

Одно решение, которое я нашел, включает в себя «взлом» 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)

Это выглядит действительно ужасно.Это явно хак.

Кто-нибудь может предложить лучшее решение (или даже лучшую реализацию того же пути решения)?

Ответы [ 3 ]

2 голосов
/ 18 июля 2011

OK После тонны копания, вот результат.

Во-первых, включение UITextField UIAlertView в поиск SO возвращает десятки хитов.

Оказывается, есть способ сделать это, Нужен новый способ добавить UITextField в UIAlertView , но это частный 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 / имя пользователя-и-пароля uitextfields-in.html
https://github.com/josecastillo/EGOTextFieldAlertView/
Как переместить кнопки в UIAlertView, чтобы освободить место для вставленного UITextField?
^ Ответ MrGando аккуратный
http://iphonedevelopment.blogspot.com/2009/02/alert-view-with-prompt.html
Получение текста из 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

0 голосов
/ 03 августа 2011

Я создал пост в своем блоге на тему «Как добавить UITextField в UIAlertView из XIB».Использовать XIB для добавления проще, чем чистое кодирование.Вы можете добавить все что угодно в настраиваемое маленькое представление, а затем добавить маленькое представление в AlertView, используя 1-строчный код.Пожалуйста, обратитесь к следующей ссылке.

http://creiapp.blogspot.com/2011/08/how-to-add-uitextfield-to-uialertview.html

0 голосов
/ 18 июля 2011
...