1年ほど愛用していたCENTURY社のWhite Knight (http://www.century.co.jp/products/ck-112cmw-psu.html) の調子が悪くなってしまい、ついにはキーを認識しなくなってしまったため、現在家のiMacにはHHK Professional2 黒 (http://www.pfu.fujitsu.com/hhkeyboard/hhkbpro2/) をつなげています。
ASCII配列自体にはある程度慣れてきたのですが、問題が日本語入力です。家のiMacではATOK for Mac 2008をMS-IME風スタイルで利用していますが、ATOKだろうがMS-IMEだろうがことえりだろうが、一般的には皆さん変換時に文節を矢印キーで動かしたり伸縮させたりしていることと思います。ところが、HHK Professional2にはまともな矢印キーがありません(あるにはありますが、これは矢印キーとして見なしてはいけないと思います・・・)。これでは日本語入力が出来ない!ということで、HHKらしくControlキーとアルファベットの組み合わせて日本語入力を華麗にこなすための操作方法をまとめてみました。
2009/06/01追記:以下のショートカットキーはMS-IME設定のときのものです。WindowsのMS-IME上でも全く同様に使えました!
■次の文節へ・前の文節へ
左手で行います。
Control + Dで次の文節へ
Control + Sで前の文節へ
Control + Aで先頭の文節へ
Control + Fで末尾の文節へ
■文節区切りの伸縮
右手で行います。
Control + Kで文節を短くする
Control + Lで文節を長くする
■文字の削除
変換中にControl + Hで単語削除
変換中にControl + Gで一文字削除
■ひらがな・カタカナ・英字などに一発変換
主に右手で行います。
Control + Uでひらがな
Control + Iでカタカナ
Control + Oで半角カタカナ
Control + Pで全角英字
Control + Tで半角英字
■これだけ覚えておけば大丈夫!
でもどうしても気に入らない場合は、「カスタマイザ」というとっても便利な機能があるので、すべて自分の好きなように変えてしまいましょう。
■しかし驚いたのは
ほとんどこれらの機能を使うことなくATOKが一発変換してくれたこと。実際、このBlogを書いている最中にも、Controlキーには2回程度しか触れていません。ATOKはマジに神。
2009年5月27日水曜日
2009年5月19日火曜日
UINavigationの片方のサイドに複数個のボタンを持たせたい
こんな感じでUINavigationBarの片方のサイドに複数個のボタンをおく方法を探してみました。UIToolBarと異なり、UINavigationBarではUINavigationItem.rightBarButtonItem, UINavigationItem.leftBarButtonItem, それからタイトル部分と、最大でも3個しかアイテムを配置することが出来ません。そのため、複数のボタンを一つの配置箇所にまとめて配置したい場合には、カスタムビューを作成する必要があります。
Appleの配布しているデモアプリケーションにもありますが、こういう場合にはUISegmentedControlのmomentaryプロパティをYESに指定して、ボタンみたいに利用するのがいちばん良いようです。
NSArray *items = [NSArray arrayWithObjects:@"Add", @"YourTurn", nil];
UISegmentedControl *segmentedControl = [[[UISegmentedControl alloc] initWithItems:items] autorelease];
segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.momentary = YES;
[segmentedControl addTarget:self action:@selector(segmentedControlClicked:) forControlEvents:UIControlEventValueChanged];
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:segmentedControl] autorelease];
この方法でひとまずはUINavigationItemの右側に複数のボタンを作ることが出来ました。しかしまだまだ完璧ではなくて、現地点で分かっている限りでも二つの問題があります。
- ボタンの背景色が通常のボタンとは異なる色になる
- 個々のボタンひとつひとつを個別にDisableすることができない
Appigo Todoなんかは普通にUINavigationBarの右側に3つもまとめてボタンを綺麗に配置してあったりするのですが、一体全体どうやってるんでしょうね?・・・うーん。
2009年5月7日木曜日
Objective-CではvalueForKeyPath:で集計関数みたいなものが使えて凄く便利
Pythonだと、
Objective-CにはKey-Value Codingという概念があって、それを使って実装されているようです。Key-Value Codingについては正直全然理解していないのでここでの解説は避けます。すみません。
NSArrayのvalueForKeyPathを使って以下のように問い合わせを行うと、先ほどのPythonの例と同様にNSArray中の最大値を持つオブジェクトを取得することが出来るようです。
同様にして、名前の最大値を求めたいときには、
とすれば取れます。また、一番長い名前の長さを求めたいときは、以下のように指定することができます。
@max以外にも、@avg, @sum, @count, @min, @unionOfObjects, @distinctUnionOfObjectsなどが用意されているみたいです。
詳しくは荻原さんのObjective-C 2.0本をご参照あれ。いや、この本は本当に買ってよかったです。Objective-Cのバイブルですね。
詳解 Objective-C 2.0
荻原 剛志
list = [{'no':1, 'name':'akisute'}, {'no':2, 'name':'abesi'}, {'no':3, 'name':'hidebu'}] maxNo = max(list, key=lambda x:x['no'])こんな感じでリストに含まれるオブジェクトの最大値を簡単に取り出せたりするのですが、Objective-Cでもできないかと思い調べてみました。ですが、NSArray自体にはそのようなメソッドが用意されていません。ひょっとして出来ないのかと思っていたら、ちょっと面白い方法で集計関数のようなものが実装されていることがわかりました。
Objective-CにはKey-Value Codingという概念があって、それを使って実装されているようです。Key-Value Codingについては正直全然理解していないのでここでの解説は避けます。すみません。
NSArrayのvalueForKeyPathを使って以下のように問い合わせを行うと、先ほどのPythonの例と同様にNSArray中の最大値を持つオブジェクトを取得することが出来るようです。
// noとnameプロパティを持つPersonクラスがあると仮定して・・・ id akisute = [[Person alloc] initWithNo:1 name:@"akisute"]; id abesi= [[Person alloc] initWithNo:2 name:@"abesi"]; id hidebu= [[Person alloc] initWithNo:3 name:@"hidebu"]; NSArray *array = [NSArray arrayWithObjects:akisute, abesi, hidebu, nil]; NSNumber *maxNo = [array valueForKeyPath:@"@max.no"];valueForKeyPathの引数に、@max.noというキーを渡すところがキモです。これで、NSArrayのインスタンスに含まれるオブジェクトのnoプロパティの最大値を求めることが出来ます。
同様にして、名前の最大値を求めたいときには、
NSString *maxName = [array valueForKeyPath:@"@max.name"];
とすれば取れます。また、一番長い名前の長さを求めたいときは、以下のように指定することができます。
NSNumber *maxCountOfName = [array valueForKeyPath:@"@max.name.count"];
@max以外にも、@avg, @sum, @count, @min, @unionOfObjects, @distinctUnionOfObjectsなどが用意されているみたいです。
詳しくは荻原さんのObjective-C 2.0本をご参照あれ。いや、この本は本当に買ってよかったです。Objective-Cのバイブルですね。
詳解 Objective-C 2.0
荻原 剛志
登録:
投稿 (Atom)