jbe*_*s94 4 objective-c ios uialertcontroller
我正在开发一个应用程序,但它是一个相当古老的应用程序.客户不想花太多时间,所以我正在寻找一个简单快速的解决方案来解决这个问题.
用户必须为他们的配置文件写一个摘要,因此他们需要一个很大的空间来写入.整个应用程序是使用AlertController弹出窗口构建的,所以我想用一个更大的多行UITextField替换单行UITextField.
我能做些什么来实现这一目标?我目前添加了以下代码:
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"" message:@"Enter your summary" preferredStyle:UIAlertControllerStyleAlert];
[alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @"Summary";
textField.autocapitalizationType = UITextAutocapitalizationTypeSentences;
textField.text = _summaryLabel.text;
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:textField attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant: 110.0];
[textField addConstraint:constraint];
[textField layoutIfNeeded];
}];
Run Code Online (Sandbox Code Playgroud)
这意味着UITextField实际上更大,但它不是多线,它也是垂直居中的文本.我该怎么办?
正如@rmaddy所说,UITextField仅用于单线,你可以使用UITextView.
你可以通过这个完成:
如何在UIAlertController中使用UITextView
UIAlertController *alert = [UIAlertController
alertControllerWithTitle:@"Enter your summary"
message:@"\n\n\n\n\n\n\n\n"
preferredStyle:UIAlertControllerStyleAlert];
alert.view.autoresizesSubviews = YES;
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectZero];
textView.translatesAutoresizingMaskIntoConstraints = NO;
NSLayoutConstraint *leadConstraint = [NSLayoutConstraint constraintWithItem:alert.view attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:textView attribute:NSLayoutAttributeLeading multiplier:1.0 constant:-8.0];
NSLayoutConstraint *trailConstraint = [NSLayoutConstraint constraintWithItem:alert.view attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:textView attribute:NSLayoutAttributeTrailing multiplier:1.0 constant:8.0];
NSLayoutConstraint *topConstraint = [NSLayoutConstraint constraintWithItem:alert.view attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:textView attribute:NSLayoutAttributeTop multiplier:1.0 constant:-64.0];
NSLayoutConstraint *bottomConstraint = [NSLayoutConstraint constraintWithItem:alert.view attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:textView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:64.0];
[alert.view addSubview:textView];
[NSLayoutConstraint activateConstraints:@[leadConstraint, trailConstraint, topConstraint, bottomConstraint]];
[alert addAction: [UIAlertAction actionWithTitle:@"Done"style:UIAlertActionStyleDefault handler:^(UIAlertAction*action) {
NSLog(@"%@", textView.text);
}]];
[self presentViewController:alert animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
或使用UIAlertView:
如何在iOS中的UIAlertview中插入UITextView
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
message:@"Enter your summary"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Done", nil];
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectZero];
[alert setValue:textView forKey:@"accessoryView"];
[alert show];
Run Code Online (Sandbox Code Playgroud)
或者自定义您自己的警报,如ios-custom-alertview
| 归档时间: |
|
| 查看次数: |
3005 次 |
| 最近记录: |