Официально Flyway не работает со Snowflake в данный момент (как вы можете видеть там https://github.com/flyway/flyway/pull/2274 ). В соответствии с этим обсуждением, похоже, существует совместимый с Snowflake форк, однако я бы не советовал делать это в производственной системе без тщательной проверки, но если вам действительно это нужно, возможно, стоит взглянуть.
Что касается интеграции Flyway с Git, вы можете интегрировать Flyway в процесс CI, потянув изображение Flyway Docker ( https://github.com/flyway/flyway-docker ) - или используя свой собственный image, если вы решили пойти на Snowflake-совместимый форк и запустить команду migrate для вашей целевой базы данных.
Взгляните на UITextViewDelegate, я считаю, что метод textViewDidChangeSelection может позволить вам делать то, что вам нужно.
Не такое изящное решение, но оно работает, кого это волнует:
- (IBAction)changeTextProgrammaticaly{
myTextView.text = @"Some text";
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(rewindOffset) userInfo:nil repeats:NO];
}
- (void)rewindOffset{
[myTextView setContentOffset:CGPointMake(0,0) animated: NO];
}
Если вы используете iPhone 3.0 или новее, вы можете решить эту проблему:
textView.scrollEnabled = NO;
//You should know where the cursor will be(if you update your text by appending/inserting/deleting you can know the selected range) so keep it in a NSRange variable.
Then update text:
textView.text = yourText;
textView.scrollEnabled = YES;
textView.selectedRange = range;//you keep before
Теперь он должен работать (больше никаких прыжков)
С уважением {{ 1}} Меир Ассаяг
Ни одно из предложенных решений не сработало для меня. -setContentOffset:animated: срабатывает на -setText: 3 раза с анимированным ДА и contentOffset конца (минус 8pt margin по умолчанию UITextView). Я обернул -setText: в guard:
textView.contentOffsetAnimatedCallsDisabled = YES;
textView.text = text;
textView.contentOffsetAnimatedCallsDisabled = NO;
В подклассе UITextView в -setContentOffset:animated: поместил
if (contentOffsetAnimatedCallsDisabled) return; // early return
среди прочей вашей логики. Не забудьте про супервызов. Это работает.
Raphael
Основываясь на предложении Меира, вот код, который удаляет выделение программно (да, я знаю, что есть кнопка меню выбора, которая тоже делает это, но я делаю что-то немного странное) без прокрутки текста Посмотреть.
NSRange selectedRange = textView.selectedRange;
textView.scrollEnabled = NO;
// I'm deleting text. Replace this line with whatever insertions/changes you want
textView.text = [textView.text
stringByReplacingCharactersInRange:selectedRange withString:@""];
selectedRange.length = 0;
// If you're inserting text, you might want to increment selectedRange.location to be
// after the text you inserted
textView.selectedRange = selectedRange;
textView.scrollEnabled = YES;