Textwellに韋駄天カーソルのDarkRoomを移植しました

iOS7になってスライドカーソルが効かなくなった。二本指でタップしてからすぐ一本指でスライドすれば実は動かせるんだけど、ちょっと大変です。


Textwell 1.0
分類: 仕事効率化,ユーティリティ
価格: \250 (Sociomedia)

で、しばらくはDraftPadのDarkRoomを流用すれば凌げるんじゃないかな。

<meta name=viewport content=initial-scale=1,maximum-scale=1>
<title>DarkRoom</title>
<body style=margin:0;background:black;>
<textarea style=' font-size: 20px; background: black; color: lime; font-family: Hiragino Kaku Gothic ProN; border:0; width:100%;' id=wine rows=999 tabindex=2></textarea>
<input style=border:0;width:70;background:black; onFocus=document.execCommand('undo') placeholder=取り消す tabindex=1>
<input style=border:0;width:70;background:black; onFocus=document.execCommand('redo') placeholder=やり直す tabindex=3>

<script>
var p,mode,old;
document.ontouchmove=touchMove;
document.ontouchstart=touchStart;

T.closelets([{
  title:"保存します",
  fn:function(){
    T('replaceRange',{
      text:wine.value,
      replacingRange:{
        loc:0,
        len:old},
      selectingRange:{
        loc:wine.selectionStart,
        len:wine.selectionEnd-wine.selectionStart}
    })
  }}],
  function(){
    wine.value=T.whole;
    old=T.whole.length;
    loc=T.range['loc'];
    len=T.range['len'];
    wine.setSelectionRange(loc, loc+len);
    wine.focus();
});

function touchMove(e){
  t=e.touches[0].pageX;
  if(t-p>4){
    wine.setSelectionRange( wine.selectionStart+mode, wine.selectionEnd+1);
    p=t;
  }
  if(p-t>4){
    wine.setSelectionRange( wine.selectionStart-mode, wine.selectionEnd-1);
    p=t;
  }
}

function touchStart(e){
  p=e.touches[0].pageX;
  mode=(wine.selectionStart == wine.selectionEnd);
}

</script>
</body>

登録リンクはこちら→ http://tinyurl.com/lw9dl8g



アクションを起動すると、例の画面になります。左右のスライドのみ有効。キーボードの左肩にある「前へ|次へ」で編集の履歴を手繰り寄せることもできます。


二本指での操作は出来ません。封じられている。iOS7の実装ミスだと思います。範囲選択はダブルタップで単語を選んでから、左右のスライドで範囲の変更をしてください。DraftPadと違い、テキストに変更はなくてもカーソル位置が同期します。これは嬉しい。
カスタマイズはソースを直接編集してください。4行目のtextareaに付いているstyleでフォントサイズや配色を変更できます。iPhoneは「font-size:16px;」にしてください。ソース形式になった分、書き換えは簡単だけど、HTMLを知らない場合は取っ付きにくいのが難点かな。でもDarkRoom自体が緊急措置なので、動けばOKで。