2015-01-28 4 views
0

У меня есть NSTextView в моем XIB-интерфейсе. Я сделал @property и все, и я написал кодКак добавить текст в редактируемый текстовый вид

[self.output setEditable:NO]; 

Я только хочу, чтобы это было пользователь нередактируемым, но я хочу, чтобы иметь возможность добавлять текст к нему с помощью

[self.output insertText:@"some text"]; 

Есть ли функция редактирования, не являющаяся пользователем, или любой способ сделать это? (Возможно, что-то не хватает.)

+0

У вашего вопроса уже есть ответ [здесь] (http://www.cocoabuilder.com/archive/cocoa/67870-inserttext-on-non-editable-nstextvie w.html # 55524). –

+0

@ DanielLe Я до сих пор не совсем понимаю. Какой метод я использую? – XtremeHek3r

+0

Вы должны захватить текстовое хранилище NSTextView: 'textView.textStorage'. Это объект типа [NSTextStorage] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTextStorage_Class/index.html#//apple_ref/occ/instm/NSTextStorage/setWords :). Затем вы можете изменить его, используя [replaceCharactersInRange: withString: method] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableAttributedString_Class/index.html#//apple_ref/occ/instm/NSMutableAttributedString/replaceCharactersInRange: withString :) суперкласса. –

ответ

1

Вы должны захватить и изменить текстовое хранилище NSTextView: output.textStorage. Это объект типа NSTextStorage. Затем вы можете изменить его, используя replaceCharactersInRange:withString: method суперкласса.

[self.output.textStorage replaceCharactersInRange:NSMakeRange(self.output.string.length, 0) withString:@" Hello, world!"]; 

Более простой подход:

[self.output setString:[self.output.string stringByAppendingString:@" Hello, world!"]]; 
+0

Просто спрашивайте, но это заменит весь текст в моем текстовом виде или просто добавит к нему текст? – XtremeHek3r

+0

Это зависит от диапазона, в котором вы проходите. В моем примере выше начало '' Hello, world! ''Будет в конце текущей строки. Я бы посоветовал вам попробовать и прочитать руководство для получения дополнительной информации. Удачи! –

+0

Кроме того, он выдает ошибку, не найденный текст метода. Уже поздно. Извините за все эти вопросы. – XtremeHek3r

0

использование этого

[self.output setStringValue: @"some string" ]; 

setStringValue: наследуется от NSControl, наряду с setIntegerValue: setDoubleValue: и т.д., и т.д ..

+0

@ XtremeHek3r использует NSTextView, а не NSTextField. –

+0

ты прав, моя ошибка – Jef

Смежные вопросы