0

我想创建一个类似于TextexpanderAtext的 Mac 应用程序。这两个应用程序都允许用户定义片段及其各自的触发词。在任何应用程序中键入触发词,都会用定义的实际代码段替换该触发词。

我假设该应用程序侦听在任何应用程序中键入的所有字符串,并且当它检测到与定义的触发词之一匹配的字符串时,它会将其替换为代码段。

这是它实际工作的方式,还是有其他方式?

4

1 回答 1

0

制作两个字段。在字段 2 中输入如下内容:

  time xyz
  come ABC

在字段 1 的脚本中:

 on textChanged
  if the last char of me = space then
   put the last word of me into temp
   if temp is in fld 2 then
     repeat for each word tWord in fld 2
        put  the last word of line lineOffset(temp,fld 2) of fld 2 into the last word of me
        exit repeat
     end repeat
   end if
  select after text of me
  end if
end textChanged

现在输入 fld 1,你知道,“现在是所有好人来援助他们国家的时候了”。使用数组可以更好地做到这一点,但这里的概念可能更容易理解。

这是一个更好的处理程序,因为它不会对触发词做出反应:

  on textChanged
   if the last char of me = space then
   put the last word of me into stringOfInterest
   put fld 2 into dataToSearch
   if stringOfInterest is in dataToSearch then
     repeat for each line tLine in dataToSearch
        if word 1 of tLine = stringOfInterest then
           put word 2 of tLine into the last word of me
           exit repeat
        end if
     end repeat
   end if
  select after text of me
 end if
end textChanged
于 2020-02-10T14:14:49.900 回答