问题
I am trying to disable editing on my UITextView
. I have tried [aboutStable setUserInteractionEnabled: NO]
, but it causes the page to not be accessible.
Here is the current code.
- (void)loadTextView1 {
UITextView *textView1 = [[UITextView alloc] init];
[textView1 setFont:[UIFont fontWithName:@"Helvetica" size:14]];
[textView1 setText:@"Example of editable UITextView"];
[textView1 setTextColor:[UIColor blackColor]];
[textView1 setBackgroundColor:[UIColor clearColor]];
[textView1 setTextAlignment:UITextAlignmentLeft];
[textView1 setFrame:CGRectMake(15, 29, 290, 288)];
[self addSubview:textView1];
[textView1 release];
}
回答1:
First of all, you are using setter methods when you could just be using properties. Secondly, you are setting a whole bunch of unnecessary properties that are very close to the default. Here is a much simpler and perhaps what you intended with your code:
Objective-C
- (void)loadTextView1 {
UITextView *textView1 = [[UITextView alloc] initWithFrame:CGRectMake(15, 29, 290, 288)];
textView1.text = @"Example of non-editable UITextView";
textView1.backgroundColor = [UIColor clearColor];
textView1.editable = NO;
[self addSubView:textView1];
[textView1 release];
}
Swift
func loadTextView1() {
let textView1 = UITextView(frame: CGRect(x: 15, y: 29, width: 290, height: 288))
textView1.text = "Example of non-editable UITextView"
textView1.backgroundColor = .clear
textView1.isEditable = false
addSubView(textView1)
}
回答2:
You can use the property editable
textView.editable = NO;
回答3:
Swift 2.0 Version
self.textView.editable = false
More details can be found in the apple UIKit Framework Reference.
Additional UITextView Attributes to consider:
- text
- attributedText
- font
- textColor
- editable
- allowsEditingTextAttributes
- dataDetectorTypes
- textAlignment
- typingAttributes
- linkTextAttributes
- textContainerInset
回答4:
For Swift 3.0 and Swift 4.0:
textView.isEditable = false
回答5:
If you are using interface builder, you can just uncheck "Editable" in the Attributes Inspector.
回答6:
Swift 3.0
func loadTextView1()
{
let textView1 = UITextView()
textView1.text = "Example of non-editable UITextView"
textView1.backgroundColor = UIColor.clear
textView1.frame = CGRect(x: 15, y: 29, width: 290, height: 288)
textView1.isEditable = false
addSubView(textView1)
}
Otherwise in Xcode's Interface Builder uncheck "Editable" in the Attributes Inspector for the text view.
回答7:
If you want to prevent all user interaction you need to do the 2 following things:
self.commentText.isEditable = false
self.commentText.isSelectable = false
回答8:
Wow, this one's certainly being done to death! Sorry to add another but I should mention you can remove any user uncertainty with:
commentTextView.isUserInteractionEnabled = false
来源:https://stackoverflow.com/questions/10067853/uitextview-how-to-really-disable-editing