我在输入UITextView
时缩进第一行。这是一个演示。
这有效但我无法弄清楚如何在文本视图缩进时出现。如果你在键盘上添加和删除一个字符,它会正确地缩进空行,但是当它第一次出现时我无法弄清楚如何做到这一点。
@interface ViewController ()
@property (strong, nonatomic) UITextView *textView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.textView = [UITextView new];
self.textView.delegate = self;
[self.view addSubview:self.textView];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.textView.frame = self.view.bounds;
[self textViewDidChange:self.textView];
}
- (void)textViewDidChange:(UITextView *)textView {
NSMutableParagraphStyle *style = [NSMutableParagraphStyle new];
style.firstLineHeadIndent = 20.f;
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:textView.text attributes:@{NSParagraphStyleAttributeName: style}];
textView.attributedText = string;
}
@end
答案 0 :(得分:0)
我认为这与您的代码完成相同的工作。
textView.textContainerInset = UIEdgeInsetsMake(8.0f, 20.0f, 8.0f, 0.0f);
答案 1 :(得分:0)
如果我理解正确,当用户点击空的UITextView开始输入时,你想让光标缩进,而且一旦用户开始输入它只会开始缩进。
在viewDidLoad中,使用@和#34初始化attributedText; "然后将文本设置为@""像这样:
-(void)viewDidLoad
{
[super viewDidLoad];
self.textView = [UITextView new];
self.textView.delegate = self;
[self.view addSubview:self.textView];
NSMutableParagraphStyle* style = [NSMutableParagraphStyle new];
style.firstLineHeadIndent = 20.f;
NSMutableAttributedString* string = [[NSMutableAttributedString alloc] initWithString:@" " attributes:@{NSParagraphStyleAttributeName: style}];
textView.attributedText = string;
textView.text = @"";
}
注意:我认为textViewDidChange中的代码不是必需的。