Я хочу сохранить запись
в текстовом поле приложения iPhone. Однако ведение журнала и последующий просмотр UItextField показывают, что эта строка превращается в простое старое пространство ...
Когда я добавляю  
к текстовому полю, он идет как одиночные символы до последней точки с запятой, после чего он исчезает из сообщения журнала и рассматривается как просто один пробел, таким образом ...
MyApp [17425: 20b] Записать строку & nbsp1234
// Я добавляю точку с запятой здесь ...
MyApp [17425: 20b] Записать строку 1234
Я хочу предотвратить автоматическое преобразование  
, чтобы впоследствии его можно было отправить на веб-сайт и просмотреть в формате HTML. Могу ли я сделать это даже с помощью NSString или это потребует чего-то еще?
Edit: Я должен был также сказать, что я предпочел бы, чтобы UITextField также отображал это после сохранения данных в массиве и повторного заполнения UITextField из массива ... Я думаю, все сводится к тому, NSString действительно преобразует это или, если просто скрывает ... Думаю, я не совсем понимаю, что происходит с автоматическим превращением  
в пространство (по крайней мере, для отображения) с NSString ...
Редактировать 2: 8/10/09 Извинения, если это неправильное использование, я не мог получить интерфейс, позволяющий мне публиковать "ответ", и не мог добавить комментарий ...
В ответ на вопрос Мэтта я опубликую некоторый код внутри другого редактирования ... Также представляет интерес регистрация «количества» строки между тем, когда строка содержала & nbsp и когда она содержала
... Что мне показалось интересным, так это то, что кажется, что счет уменьшается, когда я "завершаю"
, вводя точку с запятой ... Первоначально это приводило к следующей ошибке, потому что (я думаю) счетчик строки и счетчик диапазона различались как только
будет завершено (я опубликую код чуть позже) ... - [NSCFString substringWithRange:]: диапазон или индекс вне границ '
Я исправил ошибку сбоя, используя количество строк в коде вместо счетчика диапазонов, но это по-прежнему интересно, и «литерал»
больше не отображается в текстовом поле ...
2009-08-08 14: 58: 26.319 [17897: 20b] это str :: -> <p class="blankline">
& nbsp
2009-08-08 14: 58: 26.320 [17897: 20b] это счетчик чисел 27
// в этот момент я ввожу точку с запятой, и количество строк уменьшается ...
2009-08-08 14: 58: 28.095 [17897: 20b] это str :: -> <p class="blankline">
2009-08-08 14: 58: 28.096 [17897: 20b] это счетчик строк 23
2009-08-08 14: 58: 31.223 [17897: 20b] это str :: -> <p class="blankline">
a
2009-08-08 14: 58: 31.223 [17897: 20b] это счетчик строк 24
2009-08-08 14: 58: 31.319 [17897: 20b] это str :: -> <p class="blankline">
as
2009-08-08 14: 58: 31.320 [17897: 20b] это счетчик str 25
2009-08-08 14: 58: 31.423 [17897: 20b] это str :: -> <p class="blankline">
asd
2009-08-08 14: 58: 31.423 [17897: 20b] это счетчик чисел 26
2009-08-08 14: 58: 31.527 [17897: 20b] это str :: -> <p class="blankline">
asdf
2009-08-08 14: 58: 31.527 [17897: 20b] это счетчик чисел 27
Редактировать 4 8/10/09: размещенный выше код, потому что иначе он не будет отображаться ...
Спасибо, Мэтт, действительно интересно ... когда я публиковал свои комментарии, мне пришло в голову, что это может быть проблема с TextView - я попытался изменить пару настроек в IB, но ничего не изменилось с точки зрения "исчезновения" "
Спасибо за то, что уделили время!
Редактировать 3: 8/10/09
- (void)textViewDidChange:(UITextView *)aTextView {
[self updateTextViewPlacehoderFieldStatus];
if (dismiss == YES) {
dismiss = NO;
return;
}
NSRange range = [aTextView selectedRange];
NSArray *stringArray = [NSArray arrayWithObjects:@"http:", @"ftp:", @"https:", @"www.", nil];
NSString *str = [aTextView text];
NSLog(@"this is str::--> %@", str);
NSLog(@"this is str's count %d", str.length);
//as soon as I enter the semicolon, the printout of this log message displays a single space and the count decreases...
int i, j, count = [stringArray count];
BOOL searchRes = NO;
for (j = 4; j <= 6; j++) {
if (range.location < j)
return;
NSRange subStrRange;
// subStrRange.location = range.location - j;
//I took this out because adding to the post caused a mismatch between the length of the string from the text field and range.location
//both should be equal, but my best guess is that the OS/Cocoa interprets as ONE space.
//This caused NSString *subStr = [str substringWithRange:subStrRange]; to fail if the user entered in the text field
subStrRange.location = str.length -j;
subStrRange.length = j;
[self setSelectedLinkRange:subStrRange];
NSString *subStr = [str substringWithRange:subStrRange];
//Code crashed here with error -[NSCFString substringWithRange:]: Range or index out of bounds'
//I fixed this by using str.length instead of range.location
for (i = 0; i < count; i++) {
NSString *searchString = [stringArray objectAtIndex:i];
if (searchRes = [subStr isEqualToString:[searchString capitalizedString]])
break;else if (searchRes = [subStr isEqualToString:[searchString lowercaseString]])
break;else if (searchRes = [subStr isEqualToString:[searchString uppercaseString]])
break;
}
if (searchRes)
break;
}
if (searchRes && dismiss != YES) {
[textView resignFirstResponder];
UIAlertView *linkAlert = [[UIAlertView alloc] initWithTitle:@"Link Creation" message:@"Do you want to create link?" delegate:self cancelButtonTitle:@"Create Link" otherButtonTitles:@"Dismiss", nil];
[linkAlert setTag:1]; // for UIAlertView Delegate to handle which view is popped.
[linkAlert show];
MyAppAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[delegate setAlertRunning:YES];
[linkAlert release];
}
}