-
winform开发中autovue 默认选中平移按钮怎样弄?
2016-04-05 12:50:41winform开发中autovue 默认选中平移按钮怎样弄?求助 -
csdn积分怎样弄
2018-11-24 09:36:45 -
在C++平台下,websocket 怎样弄才支持wss,现在的是ws可以
2017-06-21 13:45:03在C++平台下,websocket 怎样弄才支持wss协议,现在的是已经实现了支持ws协议, 怎么改可以即支持ws又支持Wss的 -
这几块的数据,然后写入另一个DataTable中,格式如第二张表,请问各位大神应该怎样弄,谢谢谢了!...
2020-09-25 16:50:10C#中导入EXECL如下所示,怎样提出SHOPKO INFO ,PEEBLE'S INFO,STAGE STORE INFO,ZELLERS INFO,SHOPKO INFO这几块的数据,然后写入另一个DataTable中,格式如第二张表,请问各位大神应该怎样弄,谢谢谢了!... -
怎样弄这种界面
2013-07-25 16:58:55刚开始弄wp很多需要熟悉 类似这种界面: 可以上下拉动 姓名:输入框 密码:输入框 xxx:输入框 bbb:输入框 bbb:输入框 bbb:输入框 bbb:输入框 bbb:输入框 bbb:输入框 bbb:输入框 bbb:输入框... -
android的actionbar的溢出菜单默认不显示图标icon,怎样弄成微信那样可以显示icon
2016-08-26 15:55:28大家都知道,android的actionbar的溢出菜单默认是不显示图标icon的,那么怎样弄成微信那样可以显示icon呢? 答案是可以利用反射机制让隐藏在Overflow中的MenuItem显示Icon图标,代码如下: @Override public ...大家都知道,android的actionbar的溢出菜单默认是不显示图标icon的,那么怎样弄成微信那样可以显示icon呢?
答案是可以利用反射机制让隐藏在Overflow中的MenuItem显示Icon图标,代码如下:
复写下面onMenuOpened方法,并用反射方法实现
@Override public boolean onMenuOpened(int featureId, Menu menu) { if (featureId == Window.FEATURE_ACTION_BAR && menu != null) { if (menu.getClass().getSimpleName().equals("MenuBuilder")) { try { Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE); m.setAccessible(true); m.invoke(menu, true); } catch (Exception e) { } } } return super.onMenuOpened(featureId, menu); }
-
jsp中怎样弄一个遍历,使得id 跟name 是自增从a-z.按下面的格式
2015-08-26 07:49:46jsp中怎样弄一个遍历,使得id 跟name 按下面的格式一直是自增从a-z.按下面的格式 <li id="a"><a name="a" class="title"></a></li> <li id="b"><a name="b" class="title">B</a></li> <li id="c"><a... -
怎样弄QQ背景音乐
2012-05-14 08:35:01咱们以王绎龙的电音之王为例,百度上的链接都不能用,我昨天帮一网友做的链接。打开酷狗,下载电音之王这首歌。 然后选择音乐工具---格式转换选择平均码率为128kbps或者112kbps,这样可以缓冲快,音质不会变的。...-
咱们以王绎龙的电音之王为例,百度上的链接都不能用,我昨天帮一网友做的链接。打开酷狗,下载电音之王这首歌。
然后选择音乐工具---格式转换
选择平均码率为128kbps或者112kbps,这样可以缓冲快,音质不会变的。点击确定。
开始转换
转换完成后退出,找到歌曲文件,重命名,把歌曲名字换成引文字母,因为我用的是微软的网盘,不识别中文。
- 我用的是微软出品的网盘,容量25GB,存储文件没有时间限制,单个文件最大50M,非常不错。注册地址http://skydrive.live.com/,最好使用非IE内核的浏览器,我用的是谷歌,屡试不爽。
如果您有 Hotmail、Messenger 或 Xbox LIVE 帐户就可以直接登录了,如果没有这些账户也可以用自己常用的邮箱( 注意:QQ邮箱及纯数字账号形式的邮箱不能注册) 来注册账号。然后新建music文档,只要是英文就好,打开music文档---添加文件,如下图
将刚才重命名的歌曲文件添加到此处开始上传。
上传完成后点击继续,出现下图。我们选择属性,点击
在右边出现刚才的音乐文件,然后右击选择复制链接地址
- 新建一记事本文档,粘贴上刚才的链接如下图第一行,然后复制上下面的代码http://storage.live.com/items/随机字符?filename%3D文件名,如下图所示,把最后一个”/“后面的代码”A2EE773615471C7!133“复制换掉”随机字符“这四个字,把歌曲名字”dianyinzhiwang.mp3“复制换掉”文件名“这三个字。然后新的链接地址如下蓝色代码。
复制蓝色代码”http://storage.live.com/items/A2EE773615471C7!133?filename%3Ddianyinzhiwang.mp3“就是我们做好的链接,去QQ空间添加网络音乐吧。
连接指示:
右击歌曲获取链接得到的地址:https://skydrive.live.com/redir.aspx?cid=07f8ca726b97db06&resid=7F8CA726B97DB06!110&parid=7F8CA726B97DB06!108
下载这首歌会弹出一个新窗口的歌曲后边的下载地址:https://g4chag.sn2.livefilestore.com/y1pNPtjdlFyhAsmTtZzdSyCdQWmhYqCB3AeG4LEh7SJG6eWQmTQ_qyVenoVwQs9caAFTAfsdMIjrCCWsMIfIV2nwQ/notlove%20.mp3?download&psid=1最终整合出来的网络连接:http://storage.live.com/items/7F8CA726B97DB06!110?filename%3Dnotlove%20.mp3
注意事项
- 歌曲的名字一定要换成引文字母的,如还有不明白的请添加Q:478239139,注明Q空间音乐,只需三分钟左右,我会帮你做好链接。本人至今没有失误过,帮大家做好的记得来给个好评哈,偶也是需要鼓励的哦。
- 另外强调一点,最好不要用IE内核的浏览器,有部分网友反映不成功,我用的是谷歌。
- 如果你做的链接没有随机字符或者点击属性后不出现右边的音乐文件,那么不要删除歌曲,再上传一个,有时候是设置问题,歌曲上传两个以上就好了。
-
-
iOS-NSUndoManager与怎样弄崩微信
2017-10-31 12:22:46序 检查项目bug的时候偶然发现,做过限制(比如说字数、表情)的TextField、TextView,触发限制条件后,会在使用undo功能时crash,之后发现微信也是一样的。 有朋友问在哪里崩了,不能复现,我举几个例子,其实有...序
检查项目bug的时候偶然发现,做过限制(比如说字数、表情)的TextField、TextView,触发限制条件后,会在使用undo功能时crash,之后发现微信也是一样的。
有朋友问在哪里崩了,不能复现,我举几个例子,其实有字数限制的输入框应该都有问题。
我->个人信息->我的地址->新增地址
我->个人信息->名字
我->个人信息->个性签名
随便试了试qq、yy、简书、喜马拉雅的能输入汉字的输入框的字数限制,发现qq一般只提示不限制;yy禁用了undo;简书没做限制;做的最烂的是喜马拉雅,做了限制,但是可以轻松突破,输入任意长度的字符串。
DEMO:https://github.com/liulishuo/testUndo
思路
出现crash是因为,为了实现输入的过滤效果,会监听输入框的UIControlEventEditingChanged事件,截取字符串,手动给输入框的text属性赋值。正常情况下输入框执行setText:,默认不会注册到自己的undoManager上,并且会清空undoManger的undo、redo栈,这样并没有问题,问题是在于监听UIControlEventEditingChanged事件所执行的方法里是先对输入框的text做截取然后执行setText:。
看起来是截取的操作会入undo栈,之后的setText:方法并不会清空undo栈,导致做undo操作时,逆操作的是字符串截取的操作,操作的数据对不上,导致崩溃,这是我觉得比较合理的解释。
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSBigMutableString substringWithRange:]: Range {6, 4} out of bounds; string length 6'
以此为前提,我们有三个解决问题的方向:
-
禁用undo功能,绕过去,yy是这样做的。
-
使用setText:,每次在过滤操作时先将setText:注册到undoManager上,再进行setText:赋值操作。我试过不行。
还是一样的错误-[NSBigMutableString substringWithRange:] range超限了,setText:的逆操作为啥也是这个,我不清楚。
-
使用setText:,并确保和系统默认行为一致,也就是用setText:赋值,并清空undo栈。
个人觉得这样能达到目的,最方便。
实现
先说微信,微信的输入框特点是:
1.汉字联想的时的字符数也一样有限制
2.文本长度满了,输入框就不能从任意位置插入任何字符(可能是为了规避系统九宫格键盘输入汉字的问题)
(不太好归纳,我的地址的收货人输入框貌似有两套逻辑,一个是最大长度16个字,另外一个是最大长度50个字,我每次crash回来都会切换。。。,但是两套逻辑都有各自的问题,有兴趣的同学自己试一下,我们这里只讨论会crash的情况,也就是最大长度16个字的限制条件下的问题)
所以我一开始以为,微信应该是这么实现的
1234567891011121314151617181920212223242526272829- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
//退格
if
([string isEqualToString:@
""
])
{
return
YES;
}
//文本长度满不允许编辑 防止系统九宫格键盘在此时传入数字标号字符
if
(textField.text.length >= kMaxLength)
{
return
NO;
}
//非联想状态
if
(!textField.markedTextRange)
{
NSString * tempString = [textField.text stringByReplacingCharactersInRange:range withString:string];
NSLog(@
"%@"
,tempString);
if
(tempString.length > kMaxLength)
{
textField.text = [tempString substringToIndex:kMaxLength];
return
NO;
}
}
return
YES;
}
但是这样写不会因为undo而crash,并且还有汉字联想无限输入的bug。
所以微信应该还用了这种方式
12345678910111213//微信
[_tf addTarget:self action:@selector(textFieldTextDidChanged:) forControlEvents:UIControlEventEditingChanged];
- (void)textFieldTextDidChanged:(UITextField *)sender
{
NSString * tempString = sender.text;
if
(sender.markedTextRange == nil && tempString.length > kMaxLength)
{
sender.text = [tempString substringToIndex:kMaxLength];
}
}
这种方式除了undo会crash,没有其他明显的漏洞。
修复这个bug,只需要加一行代码
12345678910- (void)textFieldTextDidChanged:(UITextField *)sender
{
NSString * tempString = sender.text;
if
(sender.markedTextRange == nil && tempString.length > kMaxLength)
{
sender.text = [tempString substringToIndex:kMaxLength];
[sender.undoManager removeAllActions];
}
}
末
just for fun 我们来猜一下其他人的实现
yy的实现(机智)
1234567//yy
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
application.applicationSupportsShakeToEdit = NO;
return
YES;
}
喜马拉雅的实现(漏洞最多)
123456789101112//喜马拉雅
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if
(range.location >= kMaxLength)
{
return
NO;
}
else
{
return
YES;
}
}
其实我觉得在用户的输入阶段就屏蔽掉某些可能的输入,真是一件吃力不讨好的事情。
-
-
CSDN markdown怎样弄出分层的目录
2017-07-16 21:34:36我原本是想用[TOC]来实现分层,但是只是在markdown编辑预览那看到了分层,一发布标题就全部是是左对齐的了,求解决办法 发布前 [img=https://img-bbs.csdn.net/upload/201707/16/1500211885_524934.jpg]... 发布后 ... ... -
怎样弄积分啊?
2010-10-03 13:36:00谢谢啦 -
怎样弄服务器代理?
2008-06-13 17:56:00那个服务器代理怎么弄啊?我现在迫切需要。 -
怎样弄 动态二级域名访问
2013-01-07 14:19:39在服务器上都是80端口 用域名区分 ... 我想让访问ip的时候 显示的是 c.com 知道...[color=#FF0000]这三个域名,同时做到动态二级域名访问 怎么弄呢[/color] 多个域名绑定到同一个ip上,可以同时都做动态二级域名吗 -
Hibernate操作Clob类型数据是怎样弄的
2014-09-23 12:50:46在POJO中字符串大对象可以声明成一个java.lang.String或java.sql.Clob类型。 当程序从数据库中加载Clob类型数据时,仅仅加载了一个Clob类型的数据的逻辑指针。我们需要通过使用Clob.getCaracterStream()方法得到... -
关于手机web考试考试系统的答题缓存应该怎样弄呢
2018-05-08 17:36:44就是最近在开发个h5考试系统项目,要求随时将答案写入缓存,答题者不小心将web关闭之后,打开时可以继续答题,提交给服务器的答案需要从缓存中读取。这个具体应该用什么方法实现呢 -
cad怎样弄出放线的坐标_怎么把要放线的坐标标注出?
2021-01-26 18:57:432014-01-16怎么在CAD上自建坐标步骤越详细越好放总平面图,代号a,坐标为大地坐标,即全站仪所测量的坐标具体某栋的桩基平面布置图或其他施工图纸,代号b,无坐标显示要求在桩基平面布置图上标出每根桩的大地坐标,... -
cad怎样弄出放线的坐标_平面交叉(喇叭口)圆弧坐标计算
2020-12-31 14:26:19之前发过关于平面交叉喇叭口坐标计算的文章,今天借一个学员发的示例给大家讲解如何用双心软件和测量员计算喇叭口坐标。如下图:计算思路:通过手机测量员计算软件中线元参数反算功能计算出线元圆曲线圆弧长度和起点... -
程序员作死手册:我们是怎样弄丢1400万条日志记录的
2019-12-12 10:24:00开发人员与质量保证人员之所以没有严格遵循检查流程,是因为他们并不清楚这项工作的重要意义,以及一旦出现偏差有可能带来怎样的严重后果。当然,这也可能是因为主管人员不太了解流程中的某些组成部分。在这种情况下... -
cad怎样弄出放线的坐标_CAD如何将坐标做成全站仪数据
2020-12-21 10:55:43在一些工程类的全站仪数据里面我们可以用到CAD坐标的,这需要自己做。下面是学习啦小编带来关于CAD如何将坐标做成全站仪数据的内容,希望可以让大家有所收获!CAD将坐标做成全站仪数据的方法首先要检查提取出来的坐标... -
做一个这样的网页最简单怎样弄?
2015-05-06 20:53:14需要帮一个朋友做个简单的网页,我没有这方面的基础,最快速的方法是什么?楼下上网页图。实在是没分了。。还望各位大神能解答下。 -
cad怎样弄出放线的坐标_怎么把图纸上的坐标输入CAD详细步骤?
2021-01-26 18:57:431.CAD里有个 “A”这个字母选项 你点这个选项 然后再图上就可以圈出一个方框 你可以在方框里输入坐标2.CAD里有一个“线性标注 ” 你点这个也可以标出尺寸,坐标表示的2113是一个点。所以你要先确5261定你要画什么。... -
cad怎样弄出放线的坐标_利用CAD绘制全站仪放线用的坐标点
2020-12-21 10:55:49利用CAD绘制全站仪放线用的坐标点随着时代的进步,现在建筑由实用性向漂亮美观转化,所以对于施工方来说施工难度也越来越大,尤其是测量放线这一块更是重中之重,因为一旦出现失误损失将不可弥补,甚至将推倒重来。... -
cad怎样弄出放线的坐标_AutoCAD软件二次开发绘制连续放线张力曲线软件应用
2020-12-29 11:44:58原创授权声明本文由吉林送变电技术大拿王育授权发布,如需转载请注明出处,否则视为侵权处理。王育乃送变电施工技术后起之秀,擅长三维建模、CAD二次开发、跳线模拟计算,同时也是电力QC专家,热心技术、勇于创新、... -
未初始化得java小程序怎样弄_这个java程序为何为未初始化小程序?
2021-02-26 12:03:21java程序语句为:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class JPasswordFieldDemo extends JApplet implementsjava程序语句为:import java.awt.*;import java.awt.event.*;...
-
iwsnryk.github.io-源码
-
基于示例的图像修复的鲁棒伪造检测算法
-
Oracle_11g_Linux到Linux_DataGuard部署
-
2021年 系统分析师 系列课
-
企业云盘哪个好用
-
小粥学Mybatis(12)之事务
-
php 通过 java-bridge 调用 java 程序 错误处理(1)
-
加速扩张中的喜茶、奈雪们,为其它品牌提供了怎样的私域启示?
-
InfluxDBStudio-0.1.0.rar
-
fcn内网穿透MAC版
-
各系统的资源监控工具.zip
-
C语言零基础入门(详细讲解)
-
在共享单车系统中实现最佳免费行车计划
-
dubbo 源码 v2.7 分析:核心机制(一)
-
MMM 集群部署实现 MySQL 高可用和读写分离
-
零基础极简以太坊智能合约开发环境搭建并开发部署
-
MySQL 索引
-
myMiniOs(no os).rar
-
js如何简单实现汉字转成拼音的功能
-
OIF-FLEXE-02.0.pdf