全局通栏广告

爱盲论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1083|回复: 13
打印 上一主题 下一主题

分享,通过解说的代码扩展。实现按句删除、段落删除、删除光标前文本后文本的系列功能

[复制链接]

22

主题

108

帖子

686

积分

中级会员

Rank: 3Rank: 3

积分
686
跳转到指定楼层
楼主
发表于 2023-1-17 21:24:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
楼主 心灵亮光说:
本帖最后由 心灵亮光 于 2023-1-17 21:30 编辑

把下面代码新建一个功能或插件。在手势里调用就可以了。按句删除或者按段落删除。都是光标停留在这一句或者这一段落的任意一个字执行就能删除,删除光标前后内容,顾名思义就是。光标所在的地方。前面或者后面的内容。
第3方输入法也可以用,半屏输入法就能用。
本楼来自 天坦百宝箱
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

22

主题

108

帖子

686

积分

中级会员

Rank: 3Rank: 3

积分
686
沙发
 楼主| 发表于 2023-1-17 21:26:11 | 只看该作者
沙发 心灵亮光说:
--删除光标所在句
if node.isEditable() then
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
local n1,n2=0,-1
if txt and txt~="" then
    local tbl={",","。",":","?","!","……",";",",",".","!","?",";","\n",}
    for n=gb-1,1,-1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n1=n
        break
      end
    end
if gb<utf8.len(txt) then
    for n=gb,utf8.len(txt)-1,1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n2=n
        break
      end
    end
end
s=utf8.sub(txt,n1+1,n2)
txt=n2==-1 and utf8.sub(txt,1,n1) or utf8.sub(txt,1,n1)..utf8.sub(txt,n2+1,-1)
service.setText(node,txt)
service.setSelection(node,n1)
    service.speak(s.."已删除")
   else
    service.speak("编辑框为空")
  end
  return true
end
本楼来自 天坦百宝箱
回复 支持 反对

使用道具 举报

22

主题

108

帖子

686

积分

中级会员

Rank: 3Rank: 3

积分
686
板凳
 楼主| 发表于 2023-1-17 21:26:40 | 只看该作者
板凳 心灵亮光说:
--删除光标所在段落
if node.isEditable() then
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
local n1,n2=0,-1
if txt and txt~="" then
local tbl={"\n"}
    for n=gb-1,1,-1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n1=n
        break
      end
    end
if gb<utf8.len(txt) then
    for n=gb,utf8.len(txt)-1,1 do
      if table.find(tbl,utf8.sub(txt,n,n)) then
n2=n
        break
      end
    end
end
s=utf8.sub(txt,n1+1,n2)
txt=n2==-1 and utf8.sub(txt,1,n1) or utf8.sub(txt,1,n1)..utf8.sub(txt,n2+1,-1)
service.setText(node,txt)
service.setSelection(node,n1)
    service.speak(s.."已删除")
   else
    service.speak("编辑框为空")
  end
  return true
end
本楼来自 天坦百宝箱
回复 支持 反对

使用道具 举报

22

主题

108

帖子

686

积分

中级会员

Rank: 3Rank: 3

积分
686
地板
 楼主| 发表于 2023-1-17 21:27:26 | 只看该作者
地板 心灵亮光说:
--删除光标前文字
if node.isEditable()
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
if gb>0 then
s=utf8.sub(txt,gb+1,-1)
service.setText(node,s)
service.setSelection(node,0)
    service.speak("光标前已删")
   else
service.beep()
end
return true
end
本楼来自 天坦百宝箱
回复 支持 反对

使用道具 举报

22

主题

108

帖子

686

积分

中级会员

Rank: 3Rank: 3

积分
686
5#
 楼主| 发表于 2023-1-17 21:27:53 | 只看该作者
5楼 心灵亮光说:
--删除光标后文字
if node.isEditable()
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
if gb<utf8.len(txt) and txt~="" then
s=utf8.sub(txt,1,gb)
service.setText(node,s)
    service.speak("光标后已删")
   else
service.beep()
end
return true
end
本楼来自 天坦百宝箱
回复 支持 反对

使用道具 举报

56

主题

2159

帖子

7461

积分

金牌会员

Rank: 5Rank: 5

积分
7461
6#
发表于 2023-1-17 22:48:18 | 只看该作者
<
6楼 喷子说:回楼主心灵亮光
能不能帮写个代码就是摇一摇的功能,就是可以摇晃手机的地方不用摇晃手机就能让它摇一摇
本帖来自安卓秘书
回复 支持 反对

使用道具 举报

1

主题

107

帖子

1151

积分

中级会员

Rank: 3Rank: 3

积分
1151
7#
发表于 2023-1-18 01:12:02 | 只看该作者
7楼 大海h说:
这个楼主还是玩解说的高手。把这些加上去,确实很好用。
本帖来自安卓秘书
回复 支持 反对

使用道具 举报

29

主题

761

帖子

5219

积分

金牌会员

Rank: 5Rank: 5

积分
5219
8#
发表于 2023-1-18 03:01:07 | 只看该作者
8楼 降龙十八掌说:
楼主不错
本帖来自安卓秘书
回复 支持 反对

使用道具 举报

53

主题

365

帖子

3343

积分

高级会员

Rank: 4

积分
3343
9#
发表于 2023-1-18 04:47:03 | 只看该作者
9楼 大王说:

来自 畅游助手
回复 支持 反对

使用道具 举报

58

主题

1623

帖子

6577

积分

金牌会员

Rank: 5Rank: 5

积分
6577
10#
发表于 2023-1-18 07:40:13 | 只看该作者
10楼 软件探索者说:
这些人不去做客服真的是可惜了。
本帖来自安卓秘书
回复 支持 反对

使用道具 举报

22

主题

108

帖子

686

积分

中级会员

Rank: 3Rank: 3

积分
686
11#
 楼主| 发表于 2023-1-18 12:22:35 | 只看该作者
11楼 心灵亮光说:
回复 6楼 喷子
这个不会呢。只见过模拟器里面有个功能。里面可以代替手机的摇一摇。。
本楼来自 天坦百宝箱
回复 支持 反对

使用道具 举报

313

主题

2487

帖子

8085

积分

金牌会员

Rank: 5Rank: 5

积分
8085
12#
发表于 2023-1-18 16:18:16 | 只看该作者
12楼 文公子说:
为啥不升级的时候直接加上去呢
本帖来自微秘
回复 支持 反对

使用道具 举报

22

主题

108

帖子

686

积分

中级会员

Rank: 3Rank: 3

积分
686
13#
 楼主| 发表于 2023-1-19 10:29:27 | 只看该作者
13楼 心灵亮光说:
回复 12楼 文公子
都是插件扩展的,读屏没有这功能
本楼来自 天坦百宝箱
回复 支持 反对

使用道具 举报

22

主题

108

帖子

686

积分

中级会员

Rank: 3Rank: 3

积分
686
14#
 楼主| 发表于 2023-1-19 17:59:44 | 只看该作者
14楼 心灵亮光说:
再加一个删除当前字。方便讯飞输入法以及第3方输入法没有手势删除
--删除光标处所在的字(半屏输入调用)
local txt,s=node.text,""
local gb=node.getTextSelectionEnd()
if gb>0 then
s=utf8.sub(txt,gb,gb)
if gb>=2 and gb<utf8.len(txt) then
txt=utf8.sub(txt,1,gb-1)..utf8.sub(txt,gb+1,-1)
elseif gb==1 then
txt=utf8.sub(txt,gb+1,-1)
else
txt=utf8.sub(txt,1,gb-1)
end
service.setText(node,txt)
service.setSelection(node,gb-1)
? ? service.speak(s.."已删除")
? ?else
service.beep()
end删除的问题。
本楼来自 天坦百宝箱
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋| 爱盲论坛  

GMT+8, 2024-12-27 19:36 , Processed in 0.089570 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表