Enviar búsqueda
Cargar
InputMethodKit超入門
•
6 recomendaciones
•
2,753 vistas
Wataru Kimura
Seguir
Cocoa勉強会 #39
Leer menos
Leer más
Denunciar
Compartir
Denunciar
Compartir
1 de 36
Descargar ahora
Descargar para leer sin conexión
Recomendados
Input Method Kit
Input Method Kit
Weizhong Yang
Simple React Todo List
Simple React Todo List
Ritesh Chaudhari
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
スケーラブル SwiftUI プロジェクトにおける実用的な TCA モジュラー化
スケーラブル SwiftUI プロジェクトにおける実用的な TCA モジュラー化
규영 허
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo
Yuta Matsumura
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
Yuta Matsumura
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
y-uti
Recomendados
Input Method Kit
Input Method Kit
Weizhong Yang
Simple React Todo List
Simple React Todo List
Ritesh Chaudhari
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
スケーラブル SwiftUI プロジェクトにおける実用的な TCA モジュラー化
スケーラブル SwiftUI プロジェクトにおける実用的な TCA モジュラー化
규영 허
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo
Yuta Matsumura
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
Yuta Matsumura
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
y-uti
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
UnityTechnologiesJapan002
WebRTCの技術解説 第二版 公開版 本編
WebRTCの技術解説 第二版 公開版 本編
Contest Ntt-west
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Selenium course syllabus
Selenium course syllabus
lakshmipriyaaka
食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
Yoshie Kaneno
AJP Practical Questions with Solution.docx
AJP Practical Questions with Solution.docx
RenuDeshmukh5
Testing Android App Bundle with Appium
Testing Android App Bundle with Appium
Masayuki Wakizaka
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
de:code 2017
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
Swift初心者がSpriteKitで一ヶ月でゲームを作った話
Swift初心者がSpriteKitで一ヶ月でゲームを作った話
Masaaki Kakimoto
アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018
ak_shio_555
Jakarta CDI 4.0
Jakarta CDI 4.0
Satoshi Kubo
DevNetOps Overview
DevNetOps Overview
James Kelly
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
neuros
HttpClient詳解、或いは非同期の落とし穴について
HttpClient詳解、或いは非同期の落とし穴について
Yoshifumi Kawai
Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-
zaki4649
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
HajimeSasanuma
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
Unity Technologies Japan K.K.
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
mganeko
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
Cygnet Infotech
InputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろう
Wataru Kimura
値変換
値変換
Wataru Kimura
Más contenido relacionado
La actualidad más candente
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
UnityTechnologiesJapan002
WebRTCの技術解説 第二版 公開版 本編
WebRTCの技術解説 第二版 公開版 本編
Contest Ntt-west
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Selenium course syllabus
Selenium course syllabus
lakshmipriyaaka
食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
Yoshie Kaneno
AJP Practical Questions with Solution.docx
AJP Practical Questions with Solution.docx
RenuDeshmukh5
Testing Android App Bundle with Appium
Testing Android App Bundle with Appium
Masayuki Wakizaka
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
de:code 2017
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
Swift初心者がSpriteKitで一ヶ月でゲームを作った話
Swift初心者がSpriteKitで一ヶ月でゲームを作った話
Masaaki Kakimoto
アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018
ak_shio_555
Jakarta CDI 4.0
Jakarta CDI 4.0
Satoshi Kubo
DevNetOps Overview
DevNetOps Overview
James Kelly
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
neuros
HttpClient詳解、或いは非同期の落とし穴について
HttpClient詳解、或いは非同期の落とし穴について
Yoshifumi Kawai
Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-
zaki4649
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
HajimeSasanuma
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
Unity Technologies Japan K.K.
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
mganeko
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
Cygnet Infotech
La actualidad más candente
(20)
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
WebRTCの技術解説 第二版 公開版 本編
WebRTCの技術解説 第二版 公開版 本編
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Selenium course syllabus
Selenium course syllabus
食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
AJP Practical Questions with Solution.docx
AJP Practical Questions with Solution.docx
Testing Android App Bundle with Appium
Testing Android App Bundle with Appium
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
SpringBootTest入門
SpringBootTest入門
Swift初心者がSpriteKitで一ヶ月でゲームを作った話
Swift初心者がSpriteKitで一ヶ月でゲームを作った話
アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018
Jakarta CDI 4.0
Jakarta CDI 4.0
DevNetOps Overview
DevNetOps Overview
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
HttpClient詳解、或いは非同期の落とし穴について
HttpClient詳解、或いは非同期の落とし穴について
Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
Destacado
InputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろう
Wataru Kimura
値変換
値変換
Wataru Kimura
らくらくアップデートSparkle
らくらくアップデートSparkle
Wataru Kimura
Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化
Wataru Kimura
Hotkeyslib3 Cocoaでホットキー
Hotkeyslib3 Cocoaでホットキー
Wataru Kimura
Three20のTTURLRequest
Three20のTTURLRequest
Wataru Kimura
ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析
Wataru Kimura
PSMTabBarControl
PSMTabBarControl
Wataru Kimura
SIMBLでCocoaアプリをパワーアップ
SIMBLでCocoaアプリをパワーアップ
Wataru Kimura
Xcode4 project template (slide)
Xcode4 project template (slide)
Wataru Kimura
リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)
Wataru Kimura
Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信
Wataru Kimura
Clang Modules
Clang Modules
Wataru Kimura
OS X DYLD_* environments
OS X DYLD_* environments
Wataru Kimura
Destacado
(14)
InputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろう
値変換
値変換
らくらくアップデートSparkle
らくらくアップデートSparkle
Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化
Hotkeyslib3 Cocoaでホットキー
Hotkeyslib3 Cocoaでホットキー
Three20のTTURLRequest
Three20のTTURLRequest
ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析
PSMTabBarControl
PSMTabBarControl
SIMBLでCocoaアプリをパワーアップ
SIMBLでCocoaアプリをパワーアップ
Xcode4 project template (slide)
Xcode4 project template (slide)
リマインダーの繰り返しを自由に設定する (EventKit)
リマインダーの繰り返しを自由に設定する (EventKit)
Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信
Clang Modules
Clang Modules
OS X DYLD_* environments
OS X DYLD_* environments
Similar a InputMethodKit超入門
SICE 2020 Rtm tutorial 2_online_en
SICE 2020 Rtm tutorial 2_online_en
openrtm
OpenRTM-aist入門
OpenRTM-aist入門
Yuki Suga
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
Hideki Saito
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_group
Shinya Sugiyama
MariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそう
KAWANO KAZUYUKI
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
さくらインターネット株式会社
RTミドルウエア講習会2015
RTミドルウエア講習会2015
Yuki Suga
VagrantとChefで開発スピードを上げる話
VagrantとChefで開発スピードを上げる話
Koji Nakamura
「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用
ESM SEC
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~
Shuichi Gojuki
Oracleの実行計画を読んでみよう! #dbts2017
Oracleの実行計画を読んでみよう! #dbts2017
Ryota Watabe
Server side Swift & Photo Booth
Server side Swift & Photo Booth
LINE Corporation
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
Shinya Sugiyama
アトリエ秋葉原 Choregraphe WS#4
アトリエ秋葉原 Choregraphe WS#4
Atelier Akihabara
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf
勇 黒沢
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
Tech Summit 2016
さくらのIoT Platform α technical_details
さくらのIoT Platform α technical_details
さくらインターネット株式会社
WebRTC on Native App
WebRTC on Native App
WebRTCConferenceJapan
Amalgam8 application switch for cloud native services
Amalgam8 application switch for cloud native services
Takehiko Amano
Laravelの認証について
Laravelの認証について
Takeo Noda
Similar a InputMethodKit超入門
(20)
SICE 2020 Rtm tutorial 2_online_en
SICE 2020 Rtm tutorial 2_online_en
OpenRTM-aist入門
OpenRTM-aist入門
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_group
MariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそう
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
「さくらのクラウド」スタートアップスクリプトを作ってみよう! - concrete5を題材に -(オープンソースカンファレンス2014 Shimane)
RTミドルウエア講習会2015
RTミドルウエア講習会2015
VagrantとChefで開発スピードを上げる話
VagrantとChefで開発スピードを上げる話
「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~
Oracleの実行計画を読んでみよう! #dbts2017
Oracleの実行計画を読んでみよう! #dbts2017
Server side Swift & Photo Booth
Server side Swift & Photo Booth
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
アトリエ秋葉原 Choregraphe WS#4
アトリエ秋葉原 Choregraphe WS#4
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
さくらのIoT Platform α technical_details
さくらのIoT Platform α technical_details
WebRTC on Native App
WebRTC on Native App
Amalgam8 application switch for cloud native services
Amalgam8 application switch for cloud native services
Laravelの認証について
Laravelの認証について
InputMethodKit超入門
1.
InputMethodKit超⼊門
Cocoa勉強会�#39�/�2010.02.11�(祝)�/�⽊村渡 Powered by Rabbit 0.6.4 and COZMIXNG
2.
Input�Method ✓ 効率の良い⼊⼒ ✓ さまざまなアプリケーションとコ
ミュニケート InputMethodKitは、 後者を⽀援するフレームワーク
3.
InputMethodKit ✓ かな漢字変換などの⼊⼒プログラム
をつくるためのフレームワーク ✓ アプリとして⼊⼒プログラムを作成 ✓ Cocoa ✓ Leopardで導⼊された
4.
さまざまな⽇本語⼊⼒プログラム ✓ ことえり ✓ かわせみ ✓
AquaSKK ✓ Google⽇本語⼊⼒ などなど
5.
InputMethodKitの構成 +----------+
+------------------------+ |=user app=| | =input method app= | | Client <------->(Server)<-> Controller | +----------+ +------------------------+
6.
IMK�Classes IMKServer
ユーザ操作と⼊⼒操作を仲介 IMKInputController ⼊⼒プログラムの処理本体 IMKCandidates 選択候補のユーザインターフェイスを制御
7.
IMK�Protocols IMKServerInput
⼊⼒プログラムのインターフェイス IMKTextInput ⼊⼒プログラムとやりとりするアプリのイ ンターフェイス IMKStateSetting IMKMouseHandling
8.
3つの実装手段 IMKServerInputプロトコル ✓ キーバインディング ✓ ⼊⼒⽂字+修飾キーを解釈 ✓
TSMのイベントを利用
9.
キーバインディング inputText:client:
⼊⼒された⽂字を受け取る didCommandBySelector:client: キーバインディングで定義されたコマンド を受け取る "apple"が⼊⼒された "moveForward:"コマンドが指⽰され た
10.
キーバインディング キー(の組み合わせ)をObjective-C メッセージに割り当て StandardKeyBinding.dictを参照 <key>^f</key> <string>moveForward:</string>
11.
⼊⼒⽂字+修飾キーを解釈 inputText:key:modifiers:client:
⼊⼒された⽂字と修飾キーを受け取る "apple"が⼊⼒された "f"とCtrlキーが⼊⼒された
12.
TSMのイベントを利用 handleEvent:client: よくわからん。 たぶん従来のコンポーネントからの移 ⾏しやすいんじゃないかな。
13.
3つの実装手段 IMKServerInputプロトコル ✓ キーバインディング ✓ ⼊⼒⽂字+修飾キーを解釈 ✓
TSMのイベントを利用 上のふたつのどちらか
14.
つくってみよう
15.
偉大なるお手本 AppleのサンプルNumberInput
16.
NumberInput作成の手順 1.�⼊⼒メニューに表⽰ 2.�ユーザ操作から⼊⼒⽂字を決定 3.�複数の変換モード 4.�変換候補の表⽰ 5.�環境設定のUI
17.
今回のサンプル 単純のため次のように ✓ 英数字のみ扱う ✓ 英単語を候補から選択できる ✓
(できれば)⼊⼒中のテキストから候 補を抽出する
18.
実装手順 1.�最⼩限。⼊⼒プログラムとして選
択できる 2.�試験的な変換⼊⼒ 3.�目的の変換処理、変換候補の選択
19.
最⼩限の実装 ✓ Info.plistに記述 ✓ main()でIMKServerを⽣成 ✓
IMKServerControllerのサブクラス
20.
Info.plist LSBackgroundOnly InputMethodConnectionName InputMethodServerControllerClas s tsInputMethodIconFileKey tsInputMethodCharacterRepertoir eKey
21.
Info.plist LSBackgroundOnly 1に。アプリケーションをバックグラ ウンドにします。
22.
Info.plist InputMethodConnectionName アプリケーションと⼊⼒プログラムの 通信に利用する名前を指定します。こ の名前はほかの⼊⼒プログラムと重複 しないように注意してください。
23.
Info.plist InputMethodServerControllerClas s ⼊⼒サービスを提供するクラスを指定 このクラスはIMKServerControllerの サブクラス
24.
Info.plist tsInputMethodIconFileKey ⼊⼒メニューに表⽰するアイコン(こ とえりなら[あ])の画像ファイルを指 定
25.
Info.plist tsInputMethodCharacterRepertoir eKey ⼊⼒するキャラクタセットをISO1592 で指定(複数可)
26.
プログラム ✓ main.m ✓ IMKServerControllerのサブクラス
27.
main.m ここでIMKServerのインスタンスを⽣ 成し、コネクションの名前などを指定 します。
28.
IMKInputController inputText:client: この⼊⼒プログラムで⼊⼒テキストを 処理するならYESを、そうでなければ NOを返します。 とりあえず常にNOにしておきます。
29.
動作確認�0 ⼊⼒メニューに表⽰できる ✓ /Library/Input Methodsに ✓
ログオフ〜再ログオン 開発時はユーザースイッチを利用する のがよいかも
30.
試験的な変換⼊⼒を実装 -(BOOL)inputText:(NSString*)string
client:(id)sender { if ([string hasPrefix:@"o"]) { [sender insertText:@"Objective-C" replacementRange:NSMakeRange(0, 0)]; return YES; } else { return NO;
31.
動作確認�1 "o"を⼊⼒すると"Objective-C"が 他の⽂字はそのまま abc..lmnObjective-Cpq..xyz
32.
変換候補の表示 cancdidates:
候補の配列を返す candidateSelected: 候補が選択された candidateSelectionChanged: 選択候補が変更された
33.
動作確認�2 ✓ ⼊⼒中にスペースキーで変換候補を
表⽰ ✓ ⼊⼒中の⽂字が表⽰されない...
34.
インライン⼊⼒ これは宿題っ setMarkedText:selectionRange:re placementRange:
35.
終
36.
質問などあれば
どうぞ Powered by Rabbit 0.6.4 and COZMIXNG
Descargar ahora