Как убедиться, что в текстовом поле используется только один шрифт и размер шрифта?

Настройки текстового поля по умолчанию позволяют вставлять в поле содержимое с другим шрифтом и размером шрифта. Как убедиться, что вставляемое содержимое преобразуется для использования определенного шрифта и размера шрифта, то есть того, который я выбираю по умолчанию для поля?


person z--    schedule 19.04.2013    source источник


Ответы (1)


Вам нужно предотвратить появление пасты, а затем воспроизвести ее самостоятельно. Например, в поле (непроверенном):

on pasteKey
  put the clipBoardData["text"] into char (word 2 of the selectedchunk of me) to (word 4 of the selectedchunk of me) of me
end pasteKey

Вам также нужно позаботиться о перетаскивании:

on dragDrop
  put the dragData["text"] into char (word 2 of the dropChunk) to (word 4 of the dropChunk) of me
end dragDrop

Если вы используете команду «вставить», она не вызовет сообщения pasteKey, поэтому, если у вас есть такой код в вашем приложении, вам нужно убедиться, что там обрабатываются особые случаи.

Примечание. Тестирование этого в среде IDE может быть сложным, поскольку оно прерывает некоторые сообщения, в том числе pasteKey (используйте «приостановить инструменты разработки» из меню «разработка»).

person BvG    schedule 19.04.2013
comment
Что означает символ (word 2 of the selectedchunk of me) to (word 4 of the selectedchunk of me) of me? Я просто хочу вставить текст буфера обмена в качестве точки вставки поля. - person z--; 19.04.2013
comment
Нет ли более простого решения, установив свойства поля? - person z--; 19.04.2013
comment
Предложенное решение не работает. Ни с обработчиком on pasteKey на уровне поля, ни на уровне карты. - person z--; 20.04.2013
comment
@BvG сказал, что он не будет работать в среде IDE, потому что он перехватывает и не передает pasteKey. Если вы уже отформатировали вставленный текст, вы можете set the text of fld X to the text of fld X - person Monte Goulding; 20.04.2013
comment
Я добавил set the text of me to the text of me в обработчик pasteKey и поместил обработчик на уровень поля. Теперь это работает при выборе инструментов приостановки разработки в меню разработки. - person z--; 20.04.2013
comment
@Hannes Просто чтобы было ясно, использование the selectedChunk — это один из способов поместить материал в текущий выбор. Я согласен, что это немного многословно, но у меня были смешанные результаты с другими подходами, такими как установка the selection. Использование set the htmltext of me to the text of me разумно, потому что оно также заменяет расширенный текст, который каким-то образом прокрался внутрь. - person BvG; 22.04.2013