Photoshop 脚本换行符
Posted
技术标签:
【中文标题】Photoshop 脚本换行符【英文标题】:Photoshop Scripting line break 【发布时间】:2017-10-22 02:15:30 【问题描述】:我正在为 Photoshop 编写一个脚本,用户可以通过在脚本面板中输入来更改一些文本。
问题在于,当用户点击“回车”创建新行时,输出会显示“缺少字符”字形而不是换行符。
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;
任何想法如何解决这个问题?
【问题讨论】:
我很难过。我知道它在 CS3 中发生了变化。更糟糕的是,如果你添加了 OK 和 Cancel 按钮,它会自动选择 OK 按钮而不是添加回车。 【参考方案1】:距您提出此问题已有 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( /[\r\n]+/gm, "\r" );
dummy.textItem.contents = theText;
w.close();
w.center();
w.show();
PS 看来“\s+”在ExtendScript中不起作用,所以我用的是“/[\r\n]”:What is the meaning of (/^\s+|\s+$/gm) in javascript?
【讨论】:
以上是关于Photoshop 脚本换行符的主要内容,如果未能解决你的问题,请参考以下文章