9
Cocoa Study #35 iPhoneでのコピペとカスタムUI Masayuki Nii [email protected] July 4, 2009 1

Cocoa勉強会#35-iPhoneでのコピペとカスタムUI

Embed Size (px)

Citation preview

Page 1: Cocoa勉強会#35-iPhoneでのコピペとカスタムUI

Cocoa Study #35

iPhoneでのコピペとカスタムUI

Masayuki [email protected] 4, 2009

1

Page 2: Cocoa勉強会#35-iPhoneでのコピペとカスタムUI

Agenda

•何もしなくても使える範囲のコピペ•メニュー項目のコントロール•コピペに必要なクラス•カスタムユーザインタフェース

2

Page 3: Cocoa勉強会#35-iPhoneでのコピペとカスタムUI

Demo: 何もしなくてもOK

•テキスト系の編集、表示コンポーネントでは、何もしなくてもコピー&ペーストを利用可能になった

3

Page 4: Cocoa勉強会#35-iPhoneでのコピペとカスタムUI

Demo: メニューのコントロール

•UIResponderに新たなメソッド• - (BOOL)canPerformAction:(SEL)action withSender:(id)sender

• メニュー表示直前に、レスポンダチェーンを通じて、メッセージが送られる

• 応答によってメニュー表示項目の表示や非表示が可能

4

Page 5: Cocoa勉強会#35-iPhoneでのコピペとカスタムUI

コピペ対応で追加・変更されたクラス

•UIPasteboard• シングルトンで、システムのペーストボードに対応• プロパティ経由でデータの出し入れをする•UIMenuController• コピペ用メニューのクラス• 基本的にシングルトン• 自由に表示できる? とも読めるドキュメント•UIResponder• メソッド拡張• メソッド定義はUIResponderStandardEditActions5

Page 6: Cocoa勉強会#35-iPhoneでのコピペとカスタムUI

Demo: UIViewはコピペできる?

•UIViewをタップしたら、メニューを出すことができるかどうか?

• どうもできなさそう• できそうなら、指摘してください•UIMenuControllerクラスの説明• updateメソッドでレスポンダーチェーンを通じて問い合わせるかのように書かれているが…

• 実際には canPerformAction:メソッドが呼ばれない• サンプルコードがないのは怪しい!6

Page 7: Cocoa勉強会#35-iPhoneでのコピペとカスタムUI

カスタムメニュー

•UIMenuControllerはカスタマイズできない• メニュー項目は固定• たとえUIViewのクリックで表示できたとしても、項目は「コピー」など決められたもののみ

•自分で画像を作るしかない• 郵便番号検索は、結果的にそうした• UI的な点をいろいろ考慮しないといけない• 結局、UIViewなどで自分でメニューを作る• タップすれば、ペーストボード処理をする7

Page 8: Cocoa勉強会#35-iPhoneでのコピペとカスタムUI

郵便番号検索でのコピー

•通常のテキストのコピペと違い、範囲選択はしないようにした→面倒だし不要だから

• しかしながら、ステータスが分かりづらくなった• メニューに「コピー済み」と出るようにした•メニューの画像処理• スクロールしても表示していた方がいい気がした• タップ行の画面位置に応じて、上ないしは下側に表示しないといけない

• 画像をそれぞれ用意•Google Mapへのジャンプを付けた• カスタムメニューなのでしたい放題8

Page 9: Cocoa勉強会#35-iPhoneでのコピペとカスタムUI

まとめ

•コピペはできるのは待望の機能•カスタマイズが全然できないのはどうよ•ユーザインタフェースがばらつかないためにも、もう少しいろんなコンポーネントを定義して欲しいとは思うものの、たくさんあればいいってもんじゃないよ

• 何となく、「コピペ」というアイデア自体が廃れているんじゃないだろうか?

9