То, что я:UITextView textViewDidChangeSelection вызывается дважды
TextView
NSArray (строка)
AVAudioPlayer (пока не реализовано)
Когда я выбираю слово в TextView:
• Проверьте, существует ли слово в Arra у
• Пуск аудиоплеер с соответствующим звуком
К сожалению, когда я нажимаю два раза, чтобы выбрать слово внутри TextView, textViewDidChangeSelection вызывается дважды. Я не знаю, почему я дважды вижу «Юпи».
Я просто изменил inputView, чтобы скрыть клавиатуру, потому что мне нужен TextView для использования в режиме выбора.
- (void)textViewDidChangeSelection:(UITextView *)tve;
{
NSString *selectedText = [tve textInRange:tve.selectedTextRange];
if(selectedText.length > 0)
{
for (NSString *text in textArray)
{
if ([selectedText isEqualToString:text])
NSLog(@"Youpie");
tve.selectedTextRange = nil;
if (ps1.playing == YES)
{
[self stopEveryPlayer];
[self updateViewForPlayerState:ps1];
}
else if ([ps1 play])
{
[self updateViewForPlayerState:ps1];
fileName.text = [NSString stringWithFormat: @"%@ (%d ch.)", [[ps1.url relativePath] lastPathComponent], ps1.numberOfChannels, nil];
}
else
NSLog(@"Could not play %@\n", ps1.url);
break;
}
}
}
}
- (void)awakeFromNib
{
textArray = [[NSArray alloc] initWithObjects:@"dog",@"cat",@"person",@"bird",@"mouse", nil];
textView.inputView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
textView.delegate = self;
// ...
}
Я заметил что-то, когда я дважды постучал по каждому доброму слову в своем тексте.
textViewDidChangeSelection
Если слово уже выбран и никаких действий не выбрали, у меня есть 1 "Youpie".
Если нет, у меня есть 2 «Youpie».
Я нашел простое решение. Я удалил selectedRange после получения значения. textViewDidChangeSelection вызывает один раз.
Что я изменил
tve.selectedTextRange = nil;
Я использую подкласс UITextView
для отключения меню.
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
return NO;
return [super canPerformAction:action withSender:sender];
}
Я добавил реализацию для AVAudioPlayer
(PS1) тоже.
Мой «автозапуск» работает, если известное слово выбора :)
спасибо. Это дает мне больше идей для решения этой проблемы. – 2013-04-19 17:55:59
Я нашел решение после сновидений. Я не могу в это поверить ... Пользовательское меню - тоже хороший выбор. Я уверен, что буду использовать его в другом случае :) – 2013-04-20 10:10:42