SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
HotKeysLib3
                               Cocoaでホットキー


              Cocoa勉強会�#19�/�2006.07.29�(土)�/�⽊村渡



Powered by Rabbit 0.6.3 and COZMIXNG
ホットキーとは?
 前⾯でないアプリにキーイベントを送る
 ランチャーなどでよく利用されている




                      1/16
よくある質問
Q. ホットキーを使うには?

A. CarbonEventを使う

 RegisterEventHotKey(),
 UnregisterEventHotKey() ほかいろいろ




                              2/16
Carbon
 お断り
そこでHotKeysLib3
 Cocoaのラッパー
 ライセンスは�AS IS
 作:�Rogue Amoeba Software
  Audio HijackやNicecastの開発元
 キー設定用のパネル付き(英独仏 ⽇?)



                              4/16
構成�(1)�キーの利用
PTKeyCombo

 キーコンビネーション
PTHotKey

 PTKeyComboとその動作の対応
PTHotKeyCenter

 PTHotKeyを管理
                      5/16
構成�(2)�設定パネル
PTKeyComboPanel

 設定パネル




                  6/16
ホットキーの登録
1.�PTKeyComboを⽣成
2.�PTHotKeyを⽣成
3.�PTKeyComboと対応する動作(ターゲッ
   ト・アクション)をPTHotKeyに指定
4.�PTHotKeyCenterにPTHotKeyを登録




                                7/16
PTKeyCombo
キーと修飾キーを指定して⽣成
 +keyComboWithKeyCode:modifiers:
plistを利用したインターフェイス
 -initWithPlistRepresentation:
 -plistRepresentation
表⽰用の⽂字表現("^A"など)
 -description



                                   8/16
PTHotKey
インスタンスの⽣成
 -initWithIdentifier:keyCombo:
動作の設定
 -setTarget:
 -setAction:
identifierは
  PTHotKeyCenterで利用
  アプリケーション内で⼀意になるように

                                 9/16
PTHotKeyCenter
インスタンスの取得
 +sharedCenter
PTHotKeyの登録・登録解除
 -registerHotKey:
 -unregisterHotKey:
登録されているPTHotKeyの取得
 -hotKeyWithIdentifier:



                          10/16
PTKeyComboPanel
NSWindowControllerのサブクラス
インスタンスの取得
 +sharedPanel
パネルを表⽰して、キーコンビネーションを設
定する
 -runModalForHotKey:




                           11/16
PTKeyComboPanel
delegateスタイルでのシート呼び出し
 -runSheetForModalWindow:target:
delegateメソッド
 -hotKeySheetDidEndWithReturnCode:
設定されたキーコンビネーションの取得
 -keyCombo




                                     12/16
ワナ
 設定パネルで記号の表⽰⽂字がちがう気がす
 る…JISキーボード未対応?
 通常のアクションと異なり、PTHotKeyのア
 クション実⾏時にはresponder chainをたぐ
 らない
 コンパイルするとPTKeyCombo.mでエ
 ラー。"NSTLocalizedString()"という関数が
 ないと⾔われる。NSLocalizedString()にすれ
 ばよい。
                             13/16
まだ調べてないこと
 キーが重複したときってエラーになる?




                      14/16
おまけ
Key Code.appでキーコードを調べる




というか、キーの定数とかないのか?
                         15/16
おしまい
質問などあればどうぞ




Powered by Rabbit 0.6.3 and COZMIXNG

                                       16/16

Contenu connexe

Tendances

Tendances (17)

PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)
 
Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料
 
Pelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 TokyoPelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 Tokyo
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
 
Scapy presentation
Scapy presentationScapy presentation
Scapy presentation
 
php7's ast
php7's astphp7's ast
php7's ast
 
PECL を数えてみた
PECL を数えてみたPECL を数えてみた
PECL を数えてみた
 
パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由
 
Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)
 
スクリプトで文字コード変換
スクリプトで文字コード変換スクリプトで文字コード変換
スクリプトで文字コード変換
 
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミングSounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
golang binary hacks
golang binary hacksgolang binary hacks
golang binary hacks
 
Google Developer Day 2010 Japan: プログラミング言語 Go (鵜飼 文敏)
Google Developer Day 2010 Japan: プログラミング言語 Go (鵜飼 文敏)Google Developer Day 2010 Japan: プログラミング言語 Go (鵜飼 文敏)
Google Developer Day 2010 Japan: プログラミング言語 Go (鵜飼 文敏)
 
What is visor_fs_201207_customize
What is visor_fs_201207_customizeWhat is visor_fs_201207_customize
What is visor_fs_201207_customize
 
Hudson using Groovy #jggug
Hudson using Groovy  #jggugHudson using Groovy  #jggug
Hudson using Groovy #jggug
 

En vedette

En vedette (14)

InputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろうInputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろう
 
らくらくアップデートSparkle
らくらくアップデートSparkleらくらくアップデートSparkle
らくらくアップデートSparkle
 
値変換
値変換値変換
値変換
 
Three20のTTURLRequest
Three20のTTURLRequestThree20のTTURLRequest
Three20のTTURLRequest
 
InputMethodKit超入門
InputMethodKit超入門InputMethodKit超入門
InputMethodKit超入門
 
SIMBLでCocoaアプリをパワーアップ
SIMBLでCocoaアプリをパワーアップSIMBLでCocoaアプリをパワーアップ
SIMBLでCocoaアプリをパワーアップ
 
PSMTabBarControl
PSMTabBarControlPSMTabBarControl
PSMTabBarControl
 
リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)
 
Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信
 
Xcode4 project template (slide)
Xcode4 project template (slide)Xcode4 project template (slide)
Xcode4 project template (slide)
 
ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析
 
Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化
 
Clang Modules
Clang ModulesClang Modules
Clang Modules
 
OS X DYLD_* environments
OS X DYLD_* environmentsOS X DYLD_* environments
OS X DYLD_* environments
 

Similaire à Hotkeyslib3 Cocoaでホットキー

Boost.Coroutine
Boost.CoroutineBoost.Coroutine
Boost.Coroutine
melpon
 
How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2 How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2
ichikaway
 
20130329 rtm2
20130329 rtm220130329 rtm2
20130329 rtm2
openrtm
 

Similaire à Hotkeyslib3 Cocoaでホットキー (20)

コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
 
C#でOpenCL with OpenTK + Cloo
C#でOpenCL with OpenTK + ClooC#でOpenCL with OpenTK + Cloo
C#でOpenCL with OpenTK + Cloo
 
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオンJava ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
 
Yet Another Plugins
Yet Another PluginsYet Another Plugins
Yet Another Plugins
 
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
Boost.Coroutine
Boost.CoroutineBoost.Coroutine
Boost.Coroutine
 
Open-FCoE_osc2011tokyofall_20111119
Open-FCoE_osc2011tokyofall_20111119Open-FCoE_osc2011tokyofall_20111119
Open-FCoE_osc2011tokyofall_20111119
 
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティスどこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス
 
解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHub解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHub
 
How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2 How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2
 
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CD
 
Pact言語によるセキュアなスマートコントラクト開発
Pact言語によるセキュアなスマートコントラクト開発Pact言語によるセキュアなスマートコントラクト開発
Pact言語によるセキュアなスマートコントラクト開発
 
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-clusterKubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
20130315 abc firefox_os
20130315 abc firefox_os20130315 abc firefox_os
20130315 abc firefox_os
 
20130329 rtm2
20130329 rtm220130329 rtm2
20130329 rtm2
 
160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大
 
KMC Font Project 3 - FontForgeで欧文書体製作
KMC Font Project 3 - FontForgeで欧文書体製作KMC Font Project 3 - FontForgeで欧文書体製作
KMC Font Project 3 - FontForgeで欧文書体製作
 

Hotkeyslib3 Cocoaでホットキー