Need help with SZTextView?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

glaszig
667 Stars 101 Forks MIT License 164 Commits 5 Opened issues

Description

A drop-in UITextView replacement which gives you: a placeholder.

Services available

!
?

Need anything else?

Contributors list

# 28,252
Rails
Objecti...
lighttp...
PHP
115 commits
# 297,356
React
cloud-f...
Rails
Shell
10 commits
# 161,773
Objecti...
C
Shell
3 commits
# 237,435
Android
HTML
Shell
Swift
3 commits
# 114,121
C
ipv4
ipv6
Shell
3 commits
# 415,074
Objecti...
HTML
Shell
2 commits
# 150,725
Objecti...
iOS
uicolle...
pintere...
2 commits
# 126,809
Objecti...
carthag...
cocoapo...
bugsnag
1 commit
# 274,787
mapzen
C++
Swift
Android
1 commit
# 402,916
JavaScr...
Objecti...
1 commit
# 498,236
C
Shell
C++
1 commit
# 84,618
unix
telegra...
Dart
Flutter
1 commit
# 312,324
Objecti...
Swift
Shell
1 commit
# 155,560
Objecti...
Shell
scrollv...
Clojure
1 commit

SZTextView

Build Status Carthage compatible

A drop-in UITextView replacement which gives you: a placeholder.
Technically it differs from other solutions in that it tries to work like UITextField's private

_placeholderLabel
so you should not suffer ugly glitches like jumping text views or loads of custom drawing code.

Requirements

Your iOS project. Unit-tested on iOS 8.x, 9.x, 10.x -- see

.travis.yml
for details.

Installation

Either clone this repo and add the project to your Xcode workspace, use CocoaPods or Carthage.

CocoaPods

Add this to you Podfile:

pod 'SZTextView'

Carthage

Add this line to your Cartfile:

github "glaszig/SZTextView"

Usage

SZTextView *textView = [SZTextView new];
textView.placeholder = @"Enter lorem ipsum here";
textView.placeholderTextColor = [UIColor lightGrayColor];
textView.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:18.0];

Analogously you can use the

attributedPlaceholder
property to set a fancy
NSAttributedString
as the placeholder:
NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:@"Enter lorem ipsum here"];
[placeholder addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,2)];
[placeholder addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(2,4)];
[placeholder addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(6,4)];

textView.attributedPlaceholder = placeholder;

Both properties

placeholder
and
attributedPlaceholder
are made to stay in sync. If you set an
attributedPlaceholder
and afterwards set
placeholder
to something else, the set text gets copied to the
attributedPlaceholder
while trying to keep the original text attributes.
Also,
placeholder
will be set to
attributedPlaceholder.string
when using the
attributedPlaceholder
setter.

A simple demo and a few unit tests are included.

Animation

The placeholder is animatable. Just configure the

double
property
fadeTime
to the seconds you'd like the animation to take.

User Defined Runtime Attributes

If you prefer using Interface Builder to configure your UI, you can use UDRA's to set values for

placeholder
and
placeholderTextColor
.

Contributing

  1. Fork it
  2. Create your feature branch (
    git checkout -b my-new-feature
    )
  3. Commit your changes (
    git commit -am 'Added some feature'
    )
  4. Push to the branch (
    git push origin my-new-feature
    )
  5. Create new Pull Request

License

Published under the MIT license.

Note

I've developed this component for Cocktailicious. You should check it out *shamelessplug*.
Please let me now if and how you use this component. I'm curious.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.