Mam projekt, który implementuje ciemnoniebieski UITextField
, ponieważ tekst zastępczy ma domyślnie ciemnoszary kolor, ledwo mogę zrozumieć, co mówi tekst zastępczy.
Oczywiście przejrzałem ten problem, ale jeszcze nie znalazłem rozwiązania, używając języka Swift, a nie Obj-c.
Czy istnieje sposób na zmianę koloru tekstu zastępczego za UITextField
pomocą Swift?
emailTextField
?myTextField.attributedPlaceholder = NSAttributedString(string: "placeholder text", attributes: [NSForegroundColorAttributeName: UIColor.white])
Możesz to zrobić szybko, bez dodawania wiersza kodu, za pomocą Konstruktora interfejsów.
Wybierz
UITextField
i otwórz inspektora tożsamości po prawej stronie:Kliknij przycisk plus i dodaj nowy atrybut środowiska wykonawczego:
placeholderLabel.textColor (Swift 4)
_placeholderLabel.textColor (Swift 3 lub mniej)
Użyj Koloru jako typu i wybierz kolor.
Otóż to.
Nie zobaczysz wyniku, dopóki ponownie nie uruchomisz aplikacji.
źródło
Utwórz
UITextField
rozszerzenie w ten sposób:I w twojej serii ujęć lub .xib. Zobaczysz
źródło
placeHolderColor
! Jeśli zwrócisz wartość samej obliczonej właściwości z modułu pobierającego właściwość, moduł pobierający zostanie ponownie wywołany z poziomu modułu pobierającego, co spowoduje nieskończoną rekurencję. (Patrz: stackoverflow.com/a/42334711/2062785 )attributedString
pierwszą literę (jeśli nie jest pusta) i zwróć jej kolor tekstu, w przeciwnym razienil
.W Swift 3.0 użyj
W Siwft 5.0 + Użyj
źródło
Ten kod działa w Swift3:
daj mi znać, jeśli masz jakiś problem.
źródło
setValue
z dostępu do własności prywatnej. Użyj odpowiednich publicznych interfejsów API.#colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
Aby ustawić kolor zastępczy raz dla wszystkich
UITextField
aplikacji, możesz:Spowoduje to ustawienie pożądanego koloru dla wszystkich
TextField
symboli zastępczych w całej aplikacji. Ale jest dostępny tylko od iOS 9.Nie ma metody przed iOS 9 w szybkich appearenceWhenContainedIn .... (), ale można skorzystać z jednego z rozwiązań pod warunkiem tutaj appearanceWhenContainedIn w Swift
źródło
W moim przypadku używam Swift 4
Tworzę rozszerzenie dla UITextField
źródło
Xcode 9.2 Swift 4
źródło
Swift 4:
Cel C :
źródło
Oto moja szybka implementacja dla swift 4:
użyj jak:
mam nadzieję, że to komuś pomoże!
źródło
Swift 3 (prawdopodobnie 2), możesz przesłonić didSet na symbol zastępczy w
UITextField
podklasie, aby zastosować atrybut w ten sposób:źródło
Dla Swift
Utwórz rozszerzenie UITextField
Jeśli ustawiono z storyboardu.
źródło
W przypadku Swift 3 i 3.1 działa to doskonale:
źródło
W przypadku Swift 4.0, wersji X-code 9.1 lub iOS 11 można użyć następującej składni, aby mieć inny kolor zastępczy
źródło
Jestem zaskoczony, widząc, ile jest marnych rozwiązań.
Oto wersja, która zawsze będzie działać.
Szybki 4.2
WSKAZÓWKA : Jeśli zmienisz tekst zastępczy po ustawieniu koloru, kolor zostanie zresetowany.
źródło
źródło
aktualizacja odpowiedzi crubio dla Swift 4
Wybierz pole UITextField i otwórz inspektora tożsamości po prawej stronie:
Kliknij przycisk plus i dodaj nowy atrybut środowiska wykonawczego: placeholderLabel.textColor (zamiast _placeholderLabel.textColor)
Użyj Koloru jako typu i wybierz kolor.
Jeśli uruchomisz swój projekt, zobaczysz zmiany.
źródło
W przypadku wersji 4.2 i nowszych możesz to zrobić w następujący sposób:
źródło
W moim przypadku wykonałem następujące czynności:
źródło
Tutaj piszę wszystkie UIDesignable z UITextField. Za pomocą tego kodu można uzyskać bezpośredni dostęp do niego z Inspektora plików interfejsu użytkownika w serii ujęć
źródło
Dla Swift
Możesz tego użyć;
źródło
Chodzi o spersonalizowanie pola tekstowego, ale w każdym razie podzielę się tym kodem z innej strony i sprawię, że będzie trochę lepiej:
I możesz użyć tego w następujący sposób:
Wiedząc, że masz
UITextField
połączenie zViewController
.Źródło: http://codepany.com/blog/swift-3-custom-uitextfield-with-single-line-input/
źródło
Dla celu C :
Dla Swift :
źródło
Kod C celu zmiany koloru tekstu zastępczego.
Najpierw zaimportuj tę klasę objc / runtime -
następnie zastąp nazwę pola tekstowego -
źródło
dla iOS13
źródło
Użyj tego w Swift,
W celu C
źródło
źródło
Użyj tego, aby dodać przypisany symbol zastępczy:
źródło
Dla Swift 4
źródło
źródło