Вставка выгоды вводится

К сожалению, нет экспортируемого API, чтобы установить PDFView желаемое подпрыгивающее поведение.

Сказав это, вы можете (безопасно) использовать детали реализации PDFView, чтобы разобраться с этим сейчас:

extension PDFView {

    /// Disables the PDFView default bouncing behavior.
    func disableBouncing() {
        for subview in subviews {
            if let scrollView = subview as? UIScrollView {
                scrollView.bounces = false
                return
            }
        }
        print("PDFView.disableBouncing: FAILED!")
    }
}

, а затем использовать это в своем коде следующим образом:

pdfView.disableBouncing()

Предостережение . Помните, что такое решение может сломаться в будущих версиях iOS. Тем не менее, будьте уверены, что ваше приложение не будет зависать в результате (вы только не будете вообще отключать поведение при подпрыгивании).

202
задан SilverlightFox 2 January 2014 в 06:05
поделиться

8 ответов

Я сортирую фиксированных его при помощи следующего кода:

$("#editor").live('input paste',function(e){
    if(e.target.id == 'editor') {
        $('<textarea></textarea>').attr('id', 'paste').appendTo('#editMode');
        $("#paste").focus();
        setTimeout($(this).paste, 250);
    }
});

Теперь я просто должен сохранить местоположение каре и добавить к той позиции затем, я все установлен... Я думаю :)

18
ответ дан Christoffer Winterkvist 23 November 2019 в 04:59
поделиться

Посмотрите этот пример: http://www.p2e.dk/diverse/detectPaste.htm

Это по существу отслеживает каждое изменение с событием с одним входом и затем проверяет, является ли это вставка сравнением строк. О, и в IE существует onpaste событие. Так:

$ (something).bind ("input paste", function (e) {
    // check for paste as in example above and
    // do something
})
3
ответ дан Ilya Birman 23 November 2019 в 04:59
поделиться

Это становится ближе к тому, что Вы могли бы хотеть.

function sanitize(s) {
  return s.replace(/\bfoo\b/g, "~"); 
};

$(function() {
 $(":text, textarea").bind("input paste", function(e) {
   try {
     clipboardData.setData("text",
       sanitize(clipboardData.getData("text"))
     );
   } catch (e) {
     $(this).val( sanitize( $(this).val() ) );
   }
 });
});

Обратите внимание на то, что, когда объект clipboardData не найден (на браузерах другой затем IE), Вы в настоящее время получаете полную стоимость элемента + значение clipboard'ed.

Можно, вероятно, сделать некоторые дополнительные шаги к dif два значения перед входом и после входа, если Вы действительно только после того, какие данные действительно вставлялись в элемент.

6
ответ дан Mister Lucky 23 November 2019 в 04:59
поделиться

Хм... Я думаю, что можно использовать e.clipboardData поймать вставляемые данные. Если это не удается, взглянуло здесь.

$(this).live("paste", function(e) {
    alert(e.clipboardData); // [object Clipboard]
});
10
ответ дан moff 23 November 2019 в 04:59
поделиться

Это оказалось довольно иллюзорным. Значение ввода не обновляется до выполнения кода внутри функции события вставки. Я попытался вызвать другие события из функции события вставки, но входное значение по-прежнему не обновляется вставленным текстом внутри функции каких-либо событий. Это все события, кроме keyup. Если вы вызываете keyup из функции события вставки, вы можете очистить вставленный текст из функции события keyup. вот так ...

$(':input').live
(
    'input paste',
    function(e)
    {
        $(this).keyup();
    }
);

$(':input').live
(
    'keyup',
    function(e)
    {
        // sanitize pasted text here
    }
);

Здесь есть одна оговорка. В Firefox, если вы сбрасываете вводимый текст при каждой клавиатуре, если текст длиннее, чем видимая область, разрешенная шириной ввода, то сброс значения при каждой клавиатуре нарушает функциональность браузера, которая автоматически прокручивает текст до позиции курсора в конец текста. Вместо этого текст возвращается к началу, оставляя курсор вне поля зрения.

Если вы вызываете keyup из функции события вставки, вы можете очистить вставленный текст из функции события keyup. вот так ...

$(':input').live
(
    'input paste',
    function(e)
    {
        $(this).keyup();
    }
);

$(':input').live
(
    'keyup',
    function(e)
    {
        // sanitize pasted text here
    }
);

Здесь есть одна оговорка. В Firefox, если вы сбрасываете вводимый текст при каждой клавиатуре, если текст длиннее, чем видимая область, разрешенная шириной ввода, то сброс значения при каждой клавиатуре нарушает функциональность браузера, которая автоматически прокручивает текст до позиции курсора в конец текста. Вместо этого текст возвращается к началу, оставляя курсор вне поля зрения.

Если вы вызываете keyup из функции события вставки, вы можете очистить вставленный текст из функции события keyup. вот так ...

$(':input').live
(
    'input paste',
    function(e)
    {
        $(this).keyup();
    }
);

$(':input').live
(
    'keyup',
    function(e)
    {
        // sanitize pasted text here
    }
);

Здесь есть одна оговорка. В Firefox, если вы сбрасываете вводимый текст при каждой клавиатуре, если текст длиннее, чем видимая область, разрешенная шириной ввода, то сброс значения при каждой клавиатуре нарушает функциональность браузера, которая автоматически прокручивает текст до позиции курсора в конец текста. Вместо этого текст возвращается к началу, оставляя курсор вне поля зрения.

затем сброс значения при каждом нажатии клавиши нарушает функциональность браузера, которая автоматически прокручивает текст до позиции курсора в конце текста. Вместо этого текст возвращается к началу, оставляя курсор вне поля зрения.

затем сброс значения при каждом нажатии клавиши нарушает функциональность браузера, которая автоматически прокручивает текст до позиции курсора в конце текста. Вместо этого текст возвращается к началу, оставляя курсор вне поля зрения.

0
ответ дан 23 November 2019 в 04:59
поделиться

Хорошо, только что наткнулся на ту же проблему .. Я прошел долгий путь

$('input').on('paste', function () {
  var element = this;
  setTimeout(function () {
    var text = $(element).val();
    // do something with text
  }, 100);
});

Небольшой таймаут, пока функция .val () не заполнится.

E.

327
ответ дан 23 November 2019 в 04:59
поделиться

Здесь есть одна оговорка. В Firefox, если вы сбрасываете вводимый текст при каждой клавиатуре, если текст длиннее, чем видимая область, разрешенная шириной ввода, то сброс значения при каждой клавиатуре нарушает функциональность браузера, которая автоматически прокручивает текст до позиции курсора в конец текста. Вместо этого текст возвращается к началу, оставляя курсор вне поля зрения.

function scroll(elementToBeScrolled) 
{
     //this will reset the scroll to the bottom of the viewable area. 
     elementToBeScrolled.topscroll = elementToBeScrolled.scrollheight;
}
-2
ответ дан 23 November 2019 в 04:59
поделиться

Прослушайте событие вставки и установите прослушиватель событий keyup. В keyup зафиксируйте значение и удалите прослушиватель событий keyup.

$('.inputTextArea').bind('paste', function (e){
    $(e.target).keyup(getInput);
});
function getInput(e){
    var inputText = $(e.target).val();
    $(e.target).unbind('keyup');
}
9
ответ дан 23 November 2019 в 04:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: