К сожалению, нет экспортируемого 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. Тем не менее, будьте уверены, что ваше приложение не будет зависать в результате (вы только не будете вообще отключать поведение при подпрыгивании).
Я сортирую фиксированных его при помощи следующего кода:
$("#editor").live('input paste',function(e){
if(e.target.id == 'editor') {
$('<textarea></textarea>').attr('id', 'paste').appendTo('#editMode');
$("#paste").focus();
setTimeout($(this).paste, 250);
}
});
Теперь я просто должен сохранить местоположение каре и добавить к той позиции затем, я все установлен... Я думаю :)
Посмотрите этот пример: 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
})
Это становится ближе к тому, что Вы могли бы хотеть.
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 два значения перед входом и после входа, если Вы действительно только после того, какие данные действительно вставлялись в элемент.
Хм... Я думаю, что можно использовать e.clipboardData
поймать вставляемые данные. Если это не удается, взглянуло здесь.
$(this).live("paste", function(e) {
alert(e.clipboardData); // [object Clipboard]
});
Это оказалось довольно иллюзорным. Значение ввода не обновляется до выполнения кода внутри функции события вставки. Я попытался вызвать другие события из функции события вставки, но входное значение по-прежнему не обновляется вставленным текстом внутри функции каких-либо событий. Это все события, кроме 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, если вы сбрасываете вводимый текст при каждой клавиатуре, если текст длиннее, чем видимая область, разрешенная шириной ввода, то сброс значения при каждой клавиатуре нарушает функциональность браузера, которая автоматически прокручивает текст до позиции курсора в конец текста. Вместо этого текст возвращается к началу, оставляя курсор вне поля зрения.
затем сброс значения при каждом нажатии клавиши нарушает функциональность браузера, которая автоматически прокручивает текст до позиции курсора в конце текста. Вместо этого текст возвращается к началу, оставляя курсор вне поля зрения. затем сброс значения при каждом нажатии клавиши нарушает функциональность браузера, которая автоматически прокручивает текст до позиции курсора в конце текста. Вместо этого текст возвращается к началу, оставляя курсор вне поля зрения.Хорошо, только что наткнулся на ту же проблему .. Я прошел долгий путь
$('input').on('paste', function () {
var element = this;
setTimeout(function () {
var text = $(element).val();
// do something with text
}, 100);
});
Небольшой таймаут, пока функция .val () не заполнится.
E.
Здесь есть одна оговорка. В Firefox, если вы сбрасываете вводимый текст при каждой клавиатуре, если текст длиннее, чем видимая область, разрешенная шириной ввода, то сброс значения при каждой клавиатуре нарушает функциональность браузера, которая автоматически прокручивает текст до позиции курсора в конец текста. Вместо этого текст возвращается к началу, оставляя курсор вне поля зрения.
function scroll(elementToBeScrolled)
{
//this will reset the scroll to the bottom of the viewable area.
elementToBeScrolled.topscroll = elementToBeScrolled.scrollheight;
}
Прослушайте событие вставки и установите прослушиватель событий keyup. В keyup зафиксируйте значение и удалите прослушиватель событий keyup.
$('.inputTextArea').bind('paste', function (e){
$(e.target).keyup(getInput);
});
function getInput(e){
var inputText = $(e.target).val();
$(e.target).unbind('keyup');
}