Я пытаюсь поместить два текстовых поля в одну строку внутри UIAlertController (ранее UIAlertView), чтобы создать входы для телефонных номеров - один для кода страны и один для числа (мне нужно их разделить). Можно ли сделать это? Быстрые ответы будут оценены. :)Возможно ли вставить два текстовых поля в одну строку внутри UIAlertController
ответ
Так что это мой кусочек Swift. Меня устраивает. Надеюсь, это сработает и для кого-то другого.
class NumbersViewController: UIViewController, UITextFieldDelegate {
var codeTextField: UITextField?;
var numberTextField: UITextField?;
override func viewDidLoad() {
super.viewDidLoad();
}
override func viewDidAppear(animated: Bool) {
self.askForNumber();
}
func askForNumber(prefix: String = ""){
var title = "";
var message = "Enter your mobile number\n\n\n";
var alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert);
alert.modalInPopover = true;
func handleOk(alertView: UIAlertAction!){
var code: String = self.codeTextField!.text;
var number: String = self.numberTextField!.text;
}
var inputFrame = CGRectMake(0, 70, 270, 25);
var inputView: UIView = UIView(frame: inputFrame);
var prefixFrame = CGRectMake(7, 5, 10, 10);
var prefixLabel: UILabel = UILabel(frame: prefixFrame);
prefixLabel.text = "+";
var codeFrame = CGRectMake(20, 0, 65, 25);
var countryCodeTextField: UITextField = UITextField(frame: codeFrame);
countryCodeTextField.placeholder = "Code";
countryCodeTextField.borderStyle = UITextBorderStyle.RoundedRect;
countryCodeTextField.keyboardType = UIKeyboardType.DecimalPad;
var numberFrame = CGRectMake(90, 0, 170, 25);
var myNumberTextField: UITextField = UITextField(frame: numberFrame);
myNumberTextField.placeholder = "Number - digits only";
myNumberTextField.borderStyle = UITextBorderStyle.RoundedRect;
myNumberTextField.keyboardType = UIKeyboardType.DecimalPad;
self.codeTextField = countryCodeTextField;
self.numberTextField = myNumberTextField;
inputView.addSubview(prefixLabel);
inputView.addSubview(self.codeTextField!);
inputView.addSubview(self.numberTextField!);
alert.view.addSubview(inputView);
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler:handleOk));
self.presentViewController(alert, animated: true, completion: nil);
} }
Мне нужна объективная версия c :( – theFool
Он должен выглядеть как почти то же самое ... Должны быть некоторые изменения инициализирующих переменных и могут быть одной или двумя вещами, но Obj-C для меня «Read Only». Я ничего не могу написать, используя его. :) –
Hm .. Почему бы вам не поместить мой код в класс и не использовать его в своем проекте как быстрый класс: http://pinkstone.co.uk/how-to-use-swift-classes-in-objective-c/ Эта ссылка объясняет процесс, но вы можете сделать еще несколько исследований, как это сделать, если хотите. :) –
Я думаю, что Apple, отбить этот подход, но в любом случае AlertView есть метод addSubview, так что вы можете создавать текстовые поля и добавить их к AlertView. Не забывайте, чтобы TextField стал первым ответчиком.
Но опять же, Apple препятствует такому подходу.
Какой подход они препятствуют? –
Запрос пользователя на номер, используя UIAlertControler, используя UItextField или комбинацию между ними? –
Использование AlertView с TextFields, но я нашел это tooday, возможно, вы можете использовать его. https://github.com/nmaletm/STAlertView –
UIAlertView устарел в iOS 8.0, а с тех пор компания Apple вводит UIAlertController. Было бы лучше создать собственный пользовательский вид, чем взломать UIAlertView, который может сломаться в будущих версиях iOS. – Rick
Я знаю, что UIAlertView устарел. Я использую UIAlertController. Виноват. –
@ Хайли Гийо - Извините, но можете ли вы сказать мне, является ли «U» гласным или нет? Что-то подсказывает мне, что ваша коррекция может быть неправильной. –