• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Quickcursorに見る、アプリケーション間通信
 

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

on

  • 5,492 views

2009-12-19 Cocoa勉強会 #38

2009-12-19 Cocoa勉強会 #38

Statistics

Views

Total Views
5,492
Views on SlideShare
5,491
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) でないアプリ間通信 のことを
    • QuickCursor
    • 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