UITextView:如何真正禁用编辑?

时间:2012-04-09 00:59:25

标签: ios objective-c uitextview

我正在尝试禁用UITextView上的修改。我尝试了[aboutStable setUserInteractionEnabled: NO],但它导致页面无法访问。

这是当前的代码。

- (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];
}

感谢任何建议/答案。

8 个答案:

答案 0 :(得分:21)

首先,当您可以使用属性时,您正在使用setter方法。其次,您正在设置一大堆非常接近默认值的不必要属性。这是一个更简单的,也许你的代码意图:

- (void)loadTextView1 {
    UITextView *textView1 = [[UITextView alloc] init];  
    textView1.text = @"Example of non-editable UITextView";
    textView1.backgroundColor = [UIColor clearColor];
    textView1.frame = CGRectMake(15, 29, 290, 288);

    textView1.editable = NO;

    [self addSubView:textView1];
    [textView1 release];
}

答案 1 :(得分:20)

您可以使用属性editable

textView.editable = NO;

答案 2 :(得分:6)

Swift 2.0版本

self.textView.editable = false

可以在apple UIKit Framework Reference中找到更多详细信息。

要考虑的其他UITextView属性:

  • 文本
  • attributedText
  • 字体
  • 文字颜色
  • 编辑
  • allowsEditingTextAttributes
  • dataDetectorTypes
  • textAlignment
  • typingAttributes
  • linkTextAttributes
  • textContainerInset

答案 3 :(得分:4)

对于Swift 3.0和Swift 4.0:

textView.isEditable = false

答案 4 :(得分:0)

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)
}

否则在Xcode的Interface Builder中取消选中" Editable"在文本视图的属性检查器中。

答案 5 :(得分:0)

如果使用的是界面生成器,则只需在“属性”检查器中取消选中“可编辑”即可。

Attributes Inspector

答案 6 :(得分:0)

如果要阻止所有用户交互,则需要执行以下两项操作:

    self.commentText.isEditable = false
    self.commentText.isSelectable = false

答案 7 :(得分:0)

哇,这肯定要死了!很抱歉,要添加另一个,但是我要提一下,您可以使用以下方法消除任何用户不确定性:

commentTextView.isUserInteractionEnabled = false