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

любые предложения/ответы приветствуются.

5 ответов


прежде всего, вы используете методы сеттера, когда вы можете просто использовать свойства. Во-вторых, вы задаете кучу ненужных свойств, которые очень близки к дефолту. Вот гораздо проще и, возможно, то, что вы намеревались с вашим кодом:

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

Вы можете использовать свойство editable

textView.editable = NO;

Swift 2.0 Версия

self.textView.editable = false

более подробную информацию можно найти в Apple UIKit Framework Reference.


дополнительные атрибуты UITextView для подумайте:

  • текст
  • attributedText
  • шрифт
  • textColor
  • редактировать
  • allowsEditingTextAttributes
  • dataDetectorTypes
  • textAlignment
  • typingAttributes
  • linkTextAttributes
  • textContainerInset

для Swift 3.0 и Swift 4.0:

textView.isEditable = false

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 в снимите флажок редактирования кнопки.