Photoshop 脚本换行符



我正在为Photoshop开发一个脚本,用户可以通过在脚本面板中输入文本来更改一些文本。

问题是,当用户按"Enter"创建新行时,输出显示"缺少字符"字形而不是换行符。

topRow.add ("statictext", undefined, "Text layer contents:");
var myText = topRow.add ("edittext", undefined, undefined, {name: 'myText', multiline: true});
    myText.characters = 20;
    myText.preferredSize = [150,60];
    myText.active = true;

任何想法如何解决这个问题?

自从你问这个问题以来已经有 2,5 年了,但我通过搜索同样的问题遇到了你的问题。这是我解决它的方法,希望它可以帮助其他人寻找答案:

如果您用默认回车符 ("\r"( 替换所有可能的换行符,它就像 PSCC20 中的魅力一样工作。这是一个有效的演示脚本:


w = new Window('dialog {text:"Title"}');
var inputText1 = w.add("edittext", [0,0,250,60], "Text 1", {multiline: true, wantReturn: true}); //multiline, uses return for line breaks instead of CTRL-return
var button = w.add('button {text:"Change"}');
button.onClick = function (){
            dummy = app.activeDocument.artLayers.getByName("Text");
            if(dummy.kind == LayerKind.TEXT){
            theText = inputText1.text.replace( /[rn]+/gm, "r" ); 
            dummy.textItem.contents = theText;  
            w.close();
            }
    }
w.center();
w.show();

PS 似乎"\s+"在 ExtendScript 中不起作用,所以我使用"/[\r]":JavaScript 中 (/^\s+|\s+$/gm( 是什么意思?

最新更新