スケッチ風ドロー のアイコン

バグレポート

このドキュメントは日本語で書かれています。
This document is written in Japanese.
Dieses Dokument ist in Japanisch geschrieben.
Ce document est écrit en japonais.
Dit document is in het Japans geschreven.
Questo documento è scritto in giapponese.
Este documento está escrito en japonés.
Detta dokument är skrivet på japanska.

Sketchからの変更点と、Sketchのバグおよびスケッチ風ドローのバグについて箇条書きにしました。

  1. localizedに関するファイルがいっさい存在しなかったのでLocalizable.stringsファイルを新たに加えた。その他SKTAppDelegate.strings,UndoStrings.strings,SKTError.strings,SKTZoomingView.stringsを参照する部分があったので追加した。
  2. SKTText.mの- (id)initWithProperties:(NSDictionary *)propertiesで、異体字が混じっているとき、[NSUnarchiver unarchiveObjectWithData:obj];は例外を発生して異常終了してしまうバグが無くなったので、NSTextStorageのArchiveを使うようにした。
  3. SKTLineにおいて、線の角度が垂直に近いときに選択できないというバグがある。SKTLine.mの - (BOOL)isContentsUnderPoint:(NSPoint)pointのアルゴリズムに由来するものである。
  1. 以下はXcode tools2に附属するバージョン
  2. localizedに関するファイルがいっさい存在しなかったのでLocalizable.stringsファイルを新たに加えた。SKTGraphicView.m,SKTGraphic.m,SKTInspectorController.mなどlocalizedを参照する部分を変更した。
  3. ToolPanelで使用するtiffファイルの名称をSKTGraphicのサブクラスの名前と一致させるようにrenameした。SKTToolPaletteController.mがすっきりした。
  4. SKTGraphic.mの中でundoをやらせると非常にプログラミングがややこしくなるので、undoに関するものから幾つかを省いた。SKTInspectorController.mからは直ちにundoManager に登録されない。1テンポ遅れる。変更前も同様の現象があった。
  5. 矢印キーによるsnapsToGridが無かったので、SKTGraphicView.mのmoveUp:などにその機能を付け加えた。
  6. SKTGraphic.mのmoveBy:とSKTGraphicView.mのmoveSelectedGraphicsWithEvent:にscrollRectToVisible:を追加すれば、マウスドラッグによるスクロールが可能になるが使いにくくなる。InspectorPanelのDimensionsからの数値指定による移動にもスクロールするようにするには、setBounds:に組み込めばできるが、setBounds:は非常に頻繁に呼ばれるのでそれだけのために組み込んでも良くないので非対応にした。
  7. SKTTextAreaをmouseDownで新規に作ったとき、boundsを示す矩形の高さがminSizeの15ポイントに固定されてしまう。大きな悪影響はないのでそのままにしてある。
  8. SKTDrawDocumentの- (NSArray *)indicesOfObjectsByEvaluatingRangeSpecifier:(NSRangeSpecifier *)rangeSpecに関するものは拡張していない。
  9. SKTCurve,SKTScribble,SKTPolygon,SKTGroupを追加した。
  10. OPENSTEP4.xのDraw.appで作られたファイルを読めるようにした。漢字コードの相違により漢字が正常に表示されないことと、boundsを変更できないことにより見苦しいところがある。boundsを変更できない理由は、回転移動されたグループの中にTextGraphicがあった場合にboundsを変更するとレイアウトが乱れるためである。NEXTSTEPのDraw.appから作られたファイルには対応しない。
  11. OPENSTEPのDraw.appで挿入されたEPS形式のImageは、PStillというフィルターソフトがインストールされていると、PDFファイルに変換するようにした。また、EPSファイルのマウスドラッグもPStillというフィルターソフトにより使用できるようにした。 --> OS10.3以後はEPSがまともに使えるので、PStillを使用しない。
  12. SVGファイルのマウスドラッグとSVGデータのペーストに対応した。SKTsvgを追加した。
  13. SKTpdfを追加した。
  14. SKTGraphicの新規作製時のControlキー、shiftキー、Alternateキーとの併用に対応した。
  15. SKTGraphicのサイズ編集時のAlternateキーとの併用に対応する為に、SKTGraphicView.m,SKTGraphic.mにconstrainCorner:(int)knob toAspectRatio:(float)aspectを追加した。
  16. SKTImageのプリンタ出力を変更した。
  17. 選択モードにおけるテキストデータのペーストに対応するためSKTGraphicView.mを変更した。
  18. 指定できる線の太さについては制限を与えていない。0.0も指定できる。ただし画面表示のときの線の太さの最小値はSKTGraphicView.hで定義するLIMITWIDTHとした。
  19. 破線パターンの指定については、制限を与えている。
  20. SKTCircle.mとSKTPolygon.mのhitTest::メソッドで使っているNSBezierPathのcontainsPoint:メソッドが不安定である。kCGErrorFailure :というエラーが発生するときがある。動作はしているようだが実行速度が極端に遅くなる。新規のドキュメントの中でSKTCircleかSKTPolygonのオブジェクトを作ってからならばエラーが発生しない。
  21. SKTTextArea.mでNSLayoutManager,NSTextContainerがsharedInstanceから使われていたのを、その都度alloc initして使うように変更した。この変更をしないとNSLayoutManagerのlocationForGlyphAtIndex:がでたらめな値をかえしてしまう。
  22. コピーコマンドからペーストボードへ送られるペーストボードの形式の優先順を変更した。SKTGraphicView.mのcopy:メソッドを変更した。
  23. SKTBezierCurve.mでmoveBy:を実装しているが、InspectorPanelのDimensionsからの数値指定による移動には対応していない。想定外の動作をしてしまうので注意すること。
  24. SKTDrawDocument.mの- (void)printShowingPrintPanel:(BOOL)flagにおいて、仮のwindowを作るときの引数をNSBackingStoreNonretainedからNSBackingStoreBufferedへ変更した。kCGErrorIllegalArgument : CGSSetWindowToReleaseBackingOnOrderOut: Invalid windowというエラーメッセージが吐かれることを避けるため。
  25. SKTImage.mの- (NSMutableDictionary *)propertyListRepresentationにおいて[self imageRepresentation]を呼び出して、copy:に対応しているので複数ページのデータがあった場合にすべてのページがコピーされるので非常に大きなサイズになることがある。- (NSMutableDictionary *)propertyListRepresentationはファイルへのセーブにも使われるので、ここを1ページ分のデータに変えることはできない。
  26. SKTTextArea.mの- (void)loadPropertyListRepresentation:で、異体字が混じっているとき、[NSUnarchiver unarchiveObjectWithData:obj];は例外を発生して異常終了してしまうので修正した。ファイルに保存する方法も修正したので、サンプルのSketchと互換性が無くなった。サンプルのSketchで作られたファイルは読めるようにした。NSTextStorageのArchiveではなく、NSAttributedStringのRTFDataを保存するようにした。OPENSTEPのDrawと同じようになった。
  27. SKTTextAreaが[printInfo paperSize]の下の方にあって編集モードにしたとき,-[NSBigMutableString characterAtIndex:] called with out-of-bounds index. For apps linked on Tiger this will raise an exception. For earlier apps it will produce this one-time warning and continue with existing behavior (which is undefined).
    *** -[NSBigMutableString characterAtIndex:]: Range or index out of bounds というエラーメッセージが出されて、表示が消えてしまう。修正できない。
  28. SKTTextAreaのColorSpaceはPreferencesControllerで設定したColorSpaceに合わせることができない。
  29. NSRulerViewのインスタンスへsetMeasurementUnits:メソッドを送ると、CGGStackRestore: gstack underflow. というエラーメッセージが出される。表示は正常であるが、メッセージは止められない。
  30. 大きなViewBoxの中から小さなサイズをクリップするSVGをSVG書き出しすると位置がずれる。ASSVGImageRepの方で桁落ちが起きているらしい。他のSVGエンジンでもそれぞれ異なる向きで桁落ちが起きているので仕方ないかもしれない。
  31. 異体字が使われているSKTTextAreaをSVGに書き出せない。SVGファイルはプレーンテキストなので、異体字の部分だけpath要素などを使ったSVGにしなければならないが未対応。

以上のバグ・不具合の情報と修正に関して、AppleComputer社との関係は一切存在しません。
ご意見・質問がありましたら、私の方へE-Mailにてお知らせください。
E-Mail s2137@nlb.or.jp
駒ケ根市赤穂497番地604 佐藤昭