Quickcursorに見る、アプリケーション間通信
Upcoming SlideShare
Loading in...5
×
 

Quickcursorに見る、アプリケーション間通信

on

  • 5,560 views

2009-12-19 Cocoa勉強会 #38

2009-12-19 Cocoa勉強会 #38

Statistics

Views

Total Views
5,560
Views on SlideShare
5,559
Embed Views
1

Actions

Likes
0
Downloads
1
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Quickcursorに見る、アプリケーション間通信 Quickcursorに見る、アプリケーション間通信 Presentation Transcript

  • QuickCursor に⾒る、アプリケーション間通信 Cocoa勉強会�#38�/�2009.12.19�(土)�/�⽊村渡 Powered by Rabbit 0.6.3 and COZMIXNG
  • 今⽇の話は
  • QuickCursorを ダシにCocoa�DO (NSConnection) でないアプリ間通信 のことを View slide
  • QuickCursor View slide
  • QuickCursor
  • QuickCursor いかなるテキスト入力も 指定したテキストエディタで 編集できるのが最大の魅力。 Macの⼿書き説明書 http://veadardiary.blog29.fc2.com/blog-entry-2522.html
  • QuickCursor ✓ 別アプリのテキストを指定のエディ タで編集できる ✓ .app (NO input manager hacks) ✓ Jesse Grosjean (HogBaySoftWare) ✓ オープンソース? http://www.hogbaysoftware.com/products/quickcursor/ http://github.com/jessegrosjean/quickcursor
  • デモ
  • QuickCursorの しくみ
  • QuickCursorのしくみ エディタ呼び出し 1.�アプリ�->�QuickCursor 2.�QuickCursor -> エディタ 編集結果を保存 1.�エディタ�->�QuickCursor 2.�QuickCursor -> アプリ
  • QuickCursorのしくみ エディタ呼び出し ✓ Accessibility APIを利用 編集結果を保存 ✓ ODB Editor Suites (Apple Event) http://www.barebones.com/support/develop/odbsuite.html
  • コードを⾒よう
  • 注目するクラス ✓ QCAppDelegate ✓ QCUIElement - 操作対象のUI ✓ ODBEditor - エディタとの協調 http://gusmueller.com/odb/
  • アプリとのやりとり ✓ Accessibility APIを利用 編集対象のテキストを得る 1.�フォーカスされたUIを取得 2.�オブジェクトの値をとる、⽂字列 なら処理を続⾏
  • アプリとのやりとり:テキスト取得 -[QCAppDelegate�beginQuickCursorEdit:] 1.�フォーカスされたUIを取得 +[QCUIElement�focusedElement] 2.�オブジェクトの値をとる、⽂字列 なら処理を続⾏
  • アプリとのやりとり 編集結果のテキストを反映 1.�編集結果の⽂字列を保存していた UIに -[QCAppDelegate ����odbEditor:didModifyFileForString:context:]
  • Accessibility�API ◎良いところ ✓ 対象のアプリはなにも変更しなくて よい ✓ UIをオブジェクトとして保持できる ので、プログラムが単純にできる ×悪いところ ✓ アプリによってはうまくアクセスで きない(Mail.appとか)
  • エディタとのやりとり ODB Editor Suitesを利用 Apple Event ✓ Open ( -> Editor) ✓ Save, Close (Editor ->)
  • エディタとのやりとり ✓ Open ( -> Editor) -[ODBEditor ����editString:options:forClient:context:]
  • エディタとのやりとり ✓ Save (Editor ->) -[QCAppDelegate ����odbEditor:didModifyFileForString:context:] 編集結果を呼び出し元のアプリに反映
  • エディタとのやりとり ✓ Close (Editor ->) -[QCAppDelegate ���odbEditor:didCloseFileForString:context:] (設定されていれば) 呼び出し元のアプリをアクティブに
  • ODB�Editor�Suites ✓ BBEditはじめ⻑い実績がある ✓ ODBEditorを使えばエディタ呼び出 し側の実装は簡単(エディタ側は ちょっとめんどい)
  • まとめ QuickCursorをネタに DOじゃないアプリ間通信について それぞれに優位なとこがある ✓ Accessibility API ✓ Apple Event 知っとくとよいかも
  • おまけ
  • 昔、似たよなものが あったような・・・
  • EditCast
  • EditCast
  • QuickCusorとEditCast ✓ アプリ�<=>�SIMBL ✓ Accessibility API, Apple Event <=> poseAsClass:NSTextView QuickCusorのアプローチのほうがカ バー範囲が広い EditCastはLeopard以降で動かないぜ
  • EditCast2を つくるよ!
  • QuickCursor + vim�on Terminal.app ♥
  • 質問などあれば どうぞ Powered by Rabbit 0.6.3 and COZMIXNG