Дополнительно
Как отключить вставку в текстовое поле в Swift?
У меня есть TextField
с цифровым полем, и функция запускается только если оно содержит цифры.
Единственный вариант, при котором у пользователя произойдет сбой приложения, это если он вставит буквы в TextField
и нажмет OK.
Как я могу отключить вставку букв в текстовое поле?
40
12
Для Свифт 3 Она's изменило на:
Я согласен с Leonardo Savio Dabus, на вашем месте я бы использовал проверку строк и просто выдавал предупреждение, это упрощает работу. НО, если отключение опции вставки - это причудливая функция, которую вы действительно хотите внедрить в свое приложение, тогда вам нужно проделать больше работы. Ниже я приведу шаги.
Шаг 1: Вам нужно создать другой класс, который расширяет
UITextField
. В этом примере я создал свойCustomUITextField
.Шаг 2: Соедините раскадровку с вашим ViewController. Вам нужно объявить
IBOutlet
, как в обычном случае:Подключите круг рядом с
@IBOutlet
к текстовому полю в раскадровке. ИТОГ: это важно, и это легко проигнорировать:Ниже приведен быстрый снимок.
Вот и все, надеюсь, это работает.
Credit:
В основном ссылка с https://teamtreehouse.com/forum/disable-paste-in-uitextfielduitextview-swift
Если вы хотите узнать больше о поведении метода
canPerformAction
, хотя это версия objective-C, но концепции общие: https://stackoverflow.com/questions/20223966/how-can-i-detect-that-a-user-has-tapped-a-formatting-button-in-a-uimenucontrolleДля Свифт 5
UIResponderStandardEditActions
был добавлен недавно (прошивкой 10.0+) с помощью которых можно надежно проверить, если есть "вставить" или нет.Детали #
Решение 1
Решение 1 Использование
Решение 2
Решение# 2 #Использование
Полный образец решение 2
Свифт 4.1 этот код работает нормально в файле ViewController.
В реальной Свифт версию(2.2 собирается 3.0) этот код функции должен быть преобразована в:
Вы можете создать расширение для
UITextField
и переопределитьcanPerformAction
:Вы можете просто прикрепить IBAction к Sent Events (редактирование изменено) вашего текстового поля, чтобы отфильтровать не-числа из вашей строки по мере ввода, как показано ниже:
Я создал пользовательский класс для textfield. Я обработал случае, когда вы хотите включить/отключить действия на поле. Вы можете настроить код согласно вашему требованию. Набор isActionsEnabled true или false для включения/выключения действия на поле.
Предпочитают использовать
вместо
потому что возвращая True может вызвать сбой в некоторых случаях.
Вот мой код,
Если вы хотите открыть дата выбора или посмотреть комплектовщик на поле нажмите затем ниже код работы.
Добавить ниже два метода в своем классе.
//Должен реализовать
Небольшие изменения в код, потому что при попытке использовать любую функцию как вырезать или еще одно приложение рухнет . Следующий код протестирован на Свифт 3 и очень хорошо работает