- 1 名前:名称未設定 mailto:sage [2009/01/13(火) 22:26:12 ID:TtNlCCCM0]
- 前スレ
Cocoaはさっぱり!!! version.11 pc11.2ch.net/test/read.cgi/mac/1224960170/ Cocoaはさっぱり!!! version.X(10) pc11.2ch.net/test/read.cgi/mac/1211290055/ Cocoaはさっぱり!!! version.9 pc11.2ch.net/test/read.cgi/mac/1201106820/ Cocoaはさっぱり!!! version.8 pc11.2ch.net/test/read.cgi/mac/1179498292/ Cocoaはさっぱり!!! version.7 pc11.2ch.net/test/read.cgi/mac/1161486802/ Cocoaはさっぱり!!! version.6 pc11.2ch.net/test/read.cgi/mac/1146391229/ Cocoaはさっぱり!!! version.5 pc11.2ch.net/test/read.cgi/mac/1124986925/ Cocoaはさっぱり!!! version.4 pc11.2ch.net/test/read.cgi/mac/1091927026/ Cocoaはさっぱり!!! Version.3 pc5.2ch.net/test/read.cgi/mac/1063295248/ Cocoaはさっぱり!version:2 pc11.2ch.net/test/read.cgi/mac/1036923528/ Cocoaはさっぱり! pc11.2ch.net/test/read.cgi/mac/1007632025/
- 643 名前:名称未設定 mailto:sage [2009/03/15(日) 20:21:41 ID:pU7ZxSKm0]
- >>642
そのやりかたが一番基本だと思うよ
- 644 名前:名称未設定 mailto:sage [2009/03/15(日) 20:39:08 ID:VbWILUHd0]
- >>643
こんな処理はIBで出来るようにしてほしい。 これからIBをもっともっと進化させていけば、MACの開発も盛り上がると思うんだよね。 残念ながら開発環境はVisual Studioには遠く及ばない。 でもMVCの理論的でシンプルなコードと読みやすさはC#,Basicどちらにもない。
- 645 名前:名称未設定 mailto:sage [2009/03/15(日) 20:56:29 ID:p8AS3qSz0]
- >>644
この処理を実装すべきなのは、IBじゃなくて、NSTextViewの方だと思うよ。 IBはNSTextViewのプロパティーを設定するだけで、処理を追加することはできないからね。 Visual Studioのデザイナでも、そんなことできないでしょ?
- 646 名前:名称未設定 mailto:sage [2009/03/15(日) 21:10:00 ID:HoZJ0We50]
- >>642 じゃカーソルは一番下にならないとおもうけど
[textView setSelectedRange:r]; がひつようじゃね?
- 647 名前:名称未設定 mailto:sage [2009/03/15(日) 21:13:30 ID:VbWILUHd0]
- >>646
バリバリなってたよ。
- 648 名前:名称未設定 mailto:sage [2009/03/15(日) 21:29:24 ID:4St/rSG20]
- >>644
まずはIBを日本語化してほしい... XCodeだけ日本語だと半端すぐるorz
- 649 名前:名称未設定 mailto:sage [2009/03/15(日) 21:59:26 ID:v27cJsFXi]
- Xcodeってさ、ローカライズされてるの日本語だけだよね?嬉しい反面、ちょっと恥ずかしくなった
- 650 名前:名称未設定 mailto:sage [2009/03/15(日) 22:00:07 ID:2Ipvh/SI0]
- 確かにw
- 651 名前:名称未設定 mailto:sage [2009/03/15(日) 22:01:21 ID:qAnMHcPl0]
- >>648
半端な日本語リソースで余計におかしくなりそうな悪寒
- 652 名前:名称未設定 mailto:sage [2009/03/15(日) 22:04:33 ID:VwdUyDys0]
- 正直XcodeやIBやリファレンスが英語でも困らないけどな
- 653 名前:名称未設定 mailto:sage [2009/03/15(日) 22:07:13 ID:ih/GgaFl0]
- リファレンスが日本語化されてないのにIBだけされてもさして嬉しくないし。
- 654 名前:名称未設定 mailto:sage [2009/03/16(月) 02:02:22 ID:hFIBxONHP]
- >>644
NSTextViewのサブクラスを作り、その処理を実装。 さらにIB用プラグインも作ってフレームワークにして読み込めば完成。 IBはいくらでも拡張できるからね
- 655 名前:名称未設定 mailto:sage [2009/03/16(月) 08:43:12 ID:/fHEuLJ50]
- >>654
そうした。
- 656 名前:名称未設定 mailto:sage [2009/03/16(月) 08:44:33 ID:/fHEuLJ50]
- あーサブ作って関数で実装したってことね。
- 657 名前:636 [2009/03/16(月) 12:14:18 ID:PNGkc5p00]
- リファレンスは有志の方が参考例付で作っているホームページがあったけどね。
あのサイトはすごい。 まぁ英語のリファレンスはそんなにたいした英語量があるわけじゃないし、 しっかり区分分けしてくれてるから慣れれば問題ないんだよ。 問題はプログラミングガイド! ここをもっと分かりやすい日本語を用いて作り変えてほしい。! 別にそのまんま訳す必要もないし、それだとおかしくなると思うんだよね。 それにまだ日本語は限られてるし。 誰か分散オブジェクトあたりだけでいいから、分かりやすく日本語サイトに作ってほしい。 スレッド間、プロセス間通信もリモート間通信も。 なお出来れば、ボンジュールあたりの解説も。
- 658 名前:名称未設定 mailto:sage [2009/03/16(月) 12:26:55 ID:VzkVWi9F0]
- その辺は
www.amazon.co.jp/dp/0974078514/ の日本語訳を期待したほうがよさそう ていうか諦めて英語勉強したほうが速いよ。 レファレンスに慣れたんだったらいずれガイドのほうも慣れます。
- 659 名前:名称未設定 [2009/03/16(月) 12:32:09 ID:LbGA6N/G0]
- MOSAが最悪だからな。
権利もらってるくせに、2006年からほったらかし。 しかも、pdfしか用意してない。 やる気ねーんなら最初からやるなって。 翻訳済みの分も全権Appleに譲渡しろ。
- 660 名前:名称未設定 mailto:sage [2009/03/16(月) 20:52:09 ID:jeDjX52y0]
- ここでゴルァしてないで...
で、MOSAってなんとなく聞き覚えがあるんだがなんだっけ
- 661 名前:名称未設定 [2009/03/16(月) 21:52:10 ID:xZxis74v0]
- >>633
あーーエディタのすぐ上にこんな小さくあったのか・・・ メニューの方ばっか探してました。 ありがとうございます。
- 662 名前:名称未設定 mailto:sage [2009/03/16(月) 21:53:49 ID:f4VfZL0V0]
- メニューにも「戻る」ってあるよ。
- 663 名前:名称未設定 mailto:sage [2009/03/16(月) 22:18:51 ID:Als/3B9m0]
- オブジェクト変数の宣言の書式はAppleのサンプルでは
UIWindow *window; となっているのですが木下誠さんの本では UIWindow* window; となっていて、「クラス名にアスタリスクをつけて変数の型とする」と説明されています。 いずれの書式でも警告やエラーなしにコンパイルが通るということは コンパイラにとってはどちらでもいっしょということなのだと思いますが、 人間や人間がつくった文法的にはどうなのでしょうか? どちらがより好ましいとかありますか? それともどっちでも好きな方を使ったらいいですか?
- 664 名前:名称未設定 [2009/03/16(月) 22:29:49 ID:xZxis74v0]
- >>662
ヘルプウィンドウにあるような三角ボタンがどこかにあるはずだ!と探してました。 なぜか気がつかなかったorz
- 665 名前:名称未設定 [2009/03/16(月) 22:31:21 ID:xZxis74v0]
- >>663
C言語のポインタの文法でどっちも同じです。 私はUIWindow *windowの方がしっくりくるけど意味的にはUIWindow* windowの方がわかりやすそう。
- 666 名前:名称未設定 mailto:sage [2009/03/16(月) 22:47:19 ID:6HsSTdQa0]
- UIWindow* window1, window2;
と書いた場合、次のような意味になってしまう UIWindow *window1; UIWindow window2; だから、俺はいつも変数の方に*を付けてるな UIWindow *windo1, *window2; UIWindowだったら、エラーになるからすぐ分かると思うんだけど 構造体へのポインタだとエラーにならずにコンパイルできてしまうから どこでバグるのかが見つけにくい
- 667 名前:名称未設定 mailto:sage [2009/03/16(月) 23:00:45 ID:PqEmjohQ0]
- UIWindow *win1, *win2;
と書くより、素直に UIWindow *win1; UIWindow *win2; と書くなぁ。 変数あんまり多過ぎても、メソッド全体がわかりづらくなるし。 K&Rに慣れすぎたのかもしれん。ANSIにすればいいんだが。
- 668 名前:名称未設定 mailto:sage [2009/03/16(月) 23:16:09 ID:/fHEuLJ50]
- 俺はポインタの*とエイリアスの*とを区別するために
MyClass* obj1; MyClass* obj2; だな。
- 669 名前:名称未設定 mailto:sage [2009/03/16(月) 23:35:10 ID:VzkVWi9F0]
- >>668
alias って何?
- 670 名前:名称未設定 mailto:sage [2009/03/16(月) 23:39:14 ID:RaVBYPZa0]
- 女スパイがくねくねするドラマだよ
- 671 名前:名称未設定 mailto:sage [2009/03/17(火) 00:19:50 ID:UG7LQ61M0]
- >>663
そうそう、自分も最初 NSWindow* window;って書いてたけど 最近>>666のように書いて、こっちの方が正しいんじゃないかとやっと気付いた。 でもAppleのサンプルだと確かものによって違ったと思うので、書き手によるんじゃないでしょうかね。
- 672 名前:名称未設定 mailto:sage [2009/03/17(火) 00:22:33 ID:wp8dS/jc0]
- >>669
シンボリックリンクや窓のはなんつったっけ あんなのと比較にならないほど優秀なファイルリンクをもう忘れたのか
- 673 名前:663 mailto:sage [2009/03/17(火) 00:25:13 ID:Lvc3OPTN0]
- たくさん返事をいただきありがとうございます。
書き手や書き方にもよるが、クラス名につけると場合によっては意図しない結果になることもあり得るということですね。 とりあえず書式に関しては変数名につけることにします。 みなさんの説明で今の私では理解しきれないところもあったので、メモして残しておきます。 ありがとうございました。
- 674 名前:名称未設定 mailto:sage [2009/03/17(火) 00:53:01 ID:UG7LQ61M0]
- >>673
言い忘れてたけど自分も最初木下氏の本でその書き方を覚えました。 今ではメインのクラス名はAppControllerがデフォになってしまってます。 最近ではiPhone開発にならってApp_Delegateみたいなのが主流なのかな。
- 675 名前:名称未設定 mailto:sage [2009/03/17(火) 07:57:13 ID:RT19/yFd0]
- >>672
いや、それは知ってるんだけど、>>668 の文脈ではちがわない?
- 676 名前:名称未設定 mailto:sage [2009/03/17(火) 12:51:00 ID:csg2JhxK0]
- CoreDataで質問です。
特定のプロパティをデータに保存せずに一時として取り使うにはデータをモデリングする際に「一時」にチェックもしくはNSPropertyDescriptionのsetTransient:でできると思いますが、 特定のプロパティ、たとえば配列の一部だけを保存しないように設定するのは可能でしょうか? 具体的にはNSTreeControllerとNSOutlineViewで表示してるデータを以下のように取り扱いたいのです。 ▼保存したくないグループ 内容0 ▼保存したいグループ 内容0 内容1 といった感じです。 複数のNSOutlineViewを使うとリサイズやスクロールが変なことになるのでできれば1枚でできればと思っています。 データの保存時に一時的に保存したくないグループを取り除き、保存後にもとに戻すという方法も考えられますが、 何か解決策、案などありましたらよろしくお願いします。
- 677 名前:名称未設定 mailto:sage [2009/03/17(火) 20:00:01 ID:3esZjowZ0]
- 例えばC言語でポインタを宣言するとき
pointa *p; って書く人と pointa* p; っ書く人がいるけど、 後者の場合はたいていエイリアスとの区別のために行なっているんだよね。 p = a; とすると *pはaの別名(エイリアス)になる。 で、ここでポインタの宣言のところを見ると pointa *p っておかしくね?ってこと。 *pはエイリアスを表す記号でもあるんだから。 それだったらポインタの宣言は pointa* p のほうが理論的じゃん。
- 678 名前:名称未設定 mailto:sage [2009/03/17(火) 20:04:21 ID:YXfeRtuD0]
- その理屈はおかしいだろ。
区別のために行ってるんなら、その人は両方の書き方をするはずだ
- 679 名前:名称未設定 mailto:sage [2009/03/17(火) 20:10:32 ID:YXfeRtuD0]
- ああ、つまりこういうことか?
ポインタとエイリアスの両方を「pointer *p;」って書く人と ポインタを「pointer *p;」エイリアスとして使うポインタを「pointer* p;」って書き分ける人がいる。 あるポインタをエイリアスとして使うかどうか、ってのがそんなに明確に分離できるとは思えないから 俺としてはあんまり意味のあるルールって気はしないけどね。
- 680 名前:名称未設定 mailto:sage [2009/03/17(火) 20:20:03 ID:3esZjowZ0]
- >>679
全然違う。 pointa* p = a; とかく人は pointa *p = a; を理論的じゃないって考えるって話。
- 681 名前:名称未設定 mailto:sage [2009/03/17(火) 20:20:59 ID:YXfeRtuD0]
- 説明やりなおし
ポインタとエイリアスの両方を「type *p;」って書く人と ポインタを「type* p;」エイリアスとして使うポインタを「type *p;」って書き分ける人がいる。 type *p; type* q; type a; p = &a; //「*p」は「a」のエイリアスである q = &a; //「*q」は「a」のエイリアスである エイリアスとしてのみ使うのであれば、q,pは常に「*q」「*p」という表記で用いられる。 だったら「type *p;」という宣言のほうがエイリアス専用ポインタとしてはふさわしい。 じゃあ「type* q;」みたいな宣言はエイリアスじゃないポインタ用ってことにすれば区別できてよくね? という話なんだよね?
- 682 名前:名称未設定 mailto:sage [2009/03/17(火) 20:26:29 ID:3esZjowZ0]
- 区別とかじゃないの!
ポインタ用とかとエイリアス用とかって区別してないの! とに角 pointa *p = a; は邪道で全然理論的じゃないってこと。
- 683 名前:名称未設定 mailto:sage [2009/03/17(火) 20:29:48 ID:YXfeRtuD0]
- 俺が理解できてないことを確認するためにひとつだけ教えてくれ
>p = a; とすると >*pはaの別名(エイリアス)になる。 このときaの宣言は何よ?本気でわからないんだが
- 684 名前:名称未設定 mailto:sage [2009/03/17(火) 20:39:29 ID:3esZjowZ0]
- pointa型
例えばintとか構造体とか・・・。 int a = 10; int *p = a; //ポインタpの宣言だけど、*pはエイリアスの意味でもあるから、それだったら int* p = a; の方がポインタpの宣言&aを指し示すってことで理論的。
- 685 名前:名称未設定 mailto:sage [2009/03/17(火) 20:41:39 ID:YXfeRtuD0]
- マジでそのコードでいいの?
それで間違ってないんだとしたら俺はC言語1から勉強しなおさにゃならん
- 686 名前:名称未設定 mailto:sage [2009/03/17(火) 20:44:52 ID:3esZjowZ0]
- &が抜けてる・・・・・・・・・・。
- 687 名前:名称未設定 mailto:sage [2009/03/17(火) 20:46:04 ID:3esZjowZ0]
- すみません。
- 688 名前:名称未設定 mailto:sage [2009/03/17(火) 20:50:25 ID:YXfeRtuD0]
- ようやく我々はスタートラインに立ったわけだ
で、エイリアスを「type *p;」で宣言するべきって主張は理解できるんだが ポインタ宣言をそれとは違う「type* p」にすべきって言うんだったら ポインタとエイリアスを区別したいという話じゃなければなんなのさ?
- 689 名前:名称未設定 mailto:sage [2009/03/17(火) 20:55:23 ID:3esZjowZ0]
- すみません。
そうそうなの。&があるからこそ int *p = &a;はおかしいの! *pはエイリアス(別名)を意味するものでしょ。 つまり*pはaであるわけだ! だから上の式はおかしい!って話。
- 690 名前:名称未設定 mailto:sage [2009/03/17(火) 20:58:13 ID:YXfeRtuD0]
- やっぱりわかんないや!もう寝る!うえーん!!
- 691 名前:名称未設定 mailto:sage [2009/03/17(火) 21:05:06 ID:HCBvbpo10]
- ワロタw
- 692 名前:名称未設定 mailto:sage [2009/03/17(火) 21:13:53 ID:3esZjowZ0]
- 大学の教授がゆうてたんやから・・・・・
int *p = &a;はおかしいて・・・・・・・。 ポインタの宣言は int* p = &a;こそまさに正しく、現にC++ではこっちが正当だとか・・・僕はやったことないけど。
- 693 名前:名称未設定 mailto:sage [2009/03/17(火) 21:20:05 ID:gGLs4SOn0]
- こっちでやれ
C/C++ Coding Style Thread pc11.2ch.net/test/read.cgi/tech/1096687703/ コーディング規約 第3条 pc11.2ch.net/test/read.cgi/tech/1170599322/ コーディングスタイルにこだわるスレ pc11.2ch.net/test/read.cgi/tech/1193554741/
- 694 名前:名称未設定 mailto:sage [2009/03/17(火) 21:22:14 ID:3esZjowZ0]
- すみません。
この方の質問の回答がまだなので・掲載しておきます。本当にすれ違い申し訳ございません。 676 名前:名称未設定[sage] 投稿日:2009/03/17(火) 12:51:00 ID:csg2JhxK0 CoreDataで質問です。 特定のプロパティをデータに保存せずに一時として取り使うにはデータをモデリングする際に「一時」にチェックもしくはNSPropertyDescriptionのsetTransient:でできると思いますが、 特定のプロパティ、たとえば配列の一部だけを保存しないように設定するのは可能でしょうか? 具体的にはNSTreeControllerとNSOutlineViewで表示してるデータを以下のように取り扱いたいのです。 ▼保存したくないグループ 内容0 ▼保存したいグループ 内容0 内容1 といった感じです。 複数のNSOutlineViewを使うとリサイズやスクロールが変なことになるのでできれば1枚でできればと思っています。 データの保存時に一時的に保存したくないグループを取り除き、保存後にもとに戻すという方法も考えられますが、 何か解決策、案などありましたらよろしくお願いします。
- 695 名前:名称未設定 mailto:sage [2009/03/17(火) 21:26:44 ID:4Y1MmBF60]
- 要するに宣言式は
型名 変数名; の形式なんだから、 int* p; // intポインタ型 intポインタ型の変数 のほうが論理的ってことだろ? 並べて書きたいとか深く考えたくないとかいろいろある人は typedefすりゃ悩まなくていい。 >>676 すっかりスルーされてるけど、 > 特定のプロパティ、たとえば配列の一部だけを保存しないように設定するのは可能でしょうか? 結局保存したくないのは NSManagedObjectなの? だったらそのオブジェクトを InMemoryStoreに保存すれば良いと思うけど。
- 696 名前:名称未設定 mailto:sage [2009/03/17(火) 22:33:22 ID:b2z+I8FG0]
- * についての一連の流れ、最高でした。
- 697 名前:名称未設定 mailto:sage [2009/03/17(火) 22:57:25 ID:ofs0nYK30]
- どうも>>676です、静観しておりました。
>>695 上記の図は1対のNSTreeControllerとNSOutlineViewで表わされています。 NSTreeControllerをNSManagedObjectContextにバインドして保存していますが、その場合通常NSTreeControllerの持つ配列は全て保存されてしまうと思います。 上記の図でいうと、NSTreeControllerのうちindexPathが (0), (0, 0)のものは保存したくないが indexPathが (1), (1,0), (1,1) のものはXMLなりBinaryなりに保存したいということです。 >>695の書き込みを見て調べてみたのですが、もしかして保存タイプを分けたいNSManagedObjectごとに割り当てるContextやPersistentStoreCoordinatorを用意(この場合2つずつ)してやれば良いということでしょうか?
- 698 名前:名称未設定 mailto:sage [2009/03/17(火) 23:55:17 ID:ifuq6k5C0]
- 保存する/しないの属性を追加して終了時にdeleteObjectするとか。
親が保存しない、の子供なら終了時にdeleteObjectするとか。
- 699 名前:名称未設定 mailto:sage [2009/03/18(水) 00:50:11 ID:Nl8MvSTb0]
- >>697
それでもいいのですが、アプリケーションを終了するタイミング以外でも保存できるようにしたく、一時的に消してまた追加するのが回りくどく感じてしまったので…。 >>695 の件に関して過去ログなども参考にしながらいくつか試してみました。 NSManagedObjectをInMemoryStoreにアサインしようとしましたが、 NSTreeControllerでadd:してNSManagedObjectを追加した場合、自動での初期化等いろいろしてくれるようで、 このObjectのPersistentStoreをアサインし直したりというのは難しそうでした。(いろいろエラーが出て結局分からずじまい) まだ試してないですが、Controllerのadd:などを使わずに自前でManagedObjectを生成、PersistentStoreCoordinatorを設定、 そしてControllerにインサートしてやればうまくいくような気がします。
- 700 名前:名称未設定 mailto:sage [2009/03/18(水) 00:58:10 ID:Nl8MvSTb0]
- 見直したら誤字いくつかありますね、加えて分かりにくい文章ですいません。
- 701 名前:名称未設定 mailto:sage [2009/03/18(水) 07:35:18 ID:BEEAD/bv0]
- 気にせずファイルに保存しておいて、
次にファイルを開く際に要らないのを全部 fetch して即座に削除すれば? まあこの方法も汚いけど、save の際に毎回汚いことをするよりはマシでしょう。
- 702 名前:名称未設定 mailto:sage [2009/03/18(水) 10:17:03 ID:lFoNT2oi0]
- WebViewから現在選択されているテキストを取得したいんですけど
リファレンス見るとそれらしいAPIはselectedDOMRangeがありました これを使うとテキスト以外のタグも返ってくるんですけど シンプルに選択されているテキストだけを取る方法ってあるんでしょうか? それともDOMのデータをパースして自分でテキストを取り出すしかないんでしょうか?
- 703 名前:名称未設定 mailto:sage [2009/03/18(水) 11:01:38 ID:INzDTAut0]
- NSString* string = [[[[[webView mainFrame] frameView] documentView] attributedString] string];
- 704 名前:名称未設定 mailto:sage [2009/03/18(水) 12:34:05 ID:lFoNT2oi0]
- >>703
attributedStringはWebDocumentTextのメソッドだからWebDocumentView*であるdocumentView からは呼べないとコンパイラーから警告がでました WebDocumentTextにはそのものずばりのselectedTextもあるのでこれが使えれば何よりですが、WebView から呼ぶことはできなさそうですね やっぱりselectedDOMRangeを使ったほうが手っ取り早いですかね?
- 705 名前:名称未設定 mailto:sage [2009/03/18(水) 12:44:27 ID:lFoNT2oi0]
- 自己解決しました。コンパイラの警告は出るけれどもWebDocumentTextの機能も呼べるんですね。
NSString* selection = [[[[webView mainFrame] frameView] documentView] selectedString]; で選択部分のテキストが取れました。 さらに以下のようにすると警告も出なくなりました。 id document = [[[webView mainFrame] frameView] documentView]; if([document conformsToProtocol:@protocol(WebDocumentText)]) { NSString* selection = [document selectedString]; } >>703さんのヒントのおかげです。ありがとうございました。
- 706 名前:名称未設定 mailto:sage [2009/03/18(水) 15:42:38 ID:lFoNT2oi0]
- すいません、もう1つ質問させて下さい
1つのウィンドウ上にNSTextFieldが3つあったとして、現在そのうちのどれが入力フォーカス(?) を持っているかを知ることは可能でしょうか?以下の情報だと無理だと書かれているのですが... www.cocoabuilder.com/archive/message/cocoa/2005/4/6/132387
- 707 名前:名称未設定 mailto:sage [2009/03/18(水) 15:57:50 ID:eq95d6De0]
- イベント/通知(Notification)は飛んできません。って書いてる。
現在何処?なら、firstResponderがそれです。
- 708 名前:名称未設定 mailto:sage [2009/03/18(水) 16:31:57 ID:lFoNT2oi0]
- すいません、解決しました
私も最初firstResponderを見ていたのですがこれが返す値はNSTextField*じゃなくてNSText*に なっていました。これが何かわからなかったのですが、結局NSControlのcurrentEditorの値らしい とわかりました。これが>>706のリンクで言われている1つしかないインスタンスなので、これと NSTextField*を比較してもだめで、個々のNSTextFieldでcurrentEditorを呼んで、その時にnilでない 値を返すNSTextFieldがその時点で入力フォーカスを持っていると考えていいみたいですね
- 709 名前:名称未設定 mailto:sage [2009/03/18(水) 19:16:48 ID:r5RVNS6X0]
- >>708
そのNSTextのDelegateが、フォーカスの当たっているNSTextFieldになっています。 ttp://www.stripe-net.jp/cocoa/documents/chapter3/chapter3-7.html
- 710 名前:名称未設定 mailto:sage [2009/03/18(水) 19:38:01 ID:lFoNT2oi0]
- >>709
なるほど、確かにそうなってますね if ([[self window] firstResponder] == MyNSTextField01) みたいにしてだめだったんですけど if ([[[self window] firstResponder] delegate] == MyNSTextField01) にするとうまくいきました
- 711 名前:名称未設定 mailto:sage [2009/03/18(水) 21:54:29 ID:Nl8MvSTb0]
- >>701
データを保存するタイミングがアプリの終了時だけでないのと、 InMemoryStoreを利用すると複数の人から同じファイルを参照して保存時に編集結果をマージ (たぶん挙動としては保存+シンクになるかと)した場合もうまくいきそうだなぁと思いこの手法を掘り下げてみました。 あとはプロパティが全く同じだけど全て一時に設定されているモデルを作成するのもいいかも知れませんね。 いやはや時間がなくてまったく試していませんが。
- 712 名前:名称未設定 mailto:sage [2009/03/19(木) 00:48:27 ID:Dg1/nG6V0]
- ここは親切なインターネッツですね
- 713 名前:名称未設定 [2009/03/19(木) 10:06:11 ID:U94je7dF0]
- iPhone関係のプログラミングの話題もここでいいの?
iPhone版探したけどそれらしいのがなかったんですが。
- 714 名前:名称未設定 mailto:sage [2009/03/19(木) 10:47:34 ID:J6t3XWox0]
- 「iPhoneで」って書いとけばいいんじゃないの?
微妙に違うから、書いておかないとみんな混乱しちゃう。
- 715 名前:名称未設定 mailto:sage [2009/03/19(木) 11:42:05 ID:um7AEN9C0]
- >>713
つpc11.2ch.net/test/read.cgi/mac/1234555020/
- 716 名前:名称未設定 mailto:sage [2009/03/19(木) 13:40:08 ID:Utyhy8qr0]
- iPhoneはAppleとの規約が五月蝿かったような。
- 717 名前:名称未設定 mailto:sage [2009/03/19(木) 16:07:14 ID:ksx9OqeN0]
- >>716
規約変更でβ以外の話はしてもよくなった。
- 718 名前:636 [2009/03/19(木) 18:36:27 ID:PpHiwVi20]
- NSTableViewでセルを左クリックした際、row全体が選択されるのですが、
これを解消するAPIとかありますか?
- 719 名前:名称未設定 mailto:sage [2009/03/19(木) 20:06:08 ID:SjN6XR7fi]
- >>609
解消ってなんだよ。 選択解除をしたいのか、選択処理自体が起こらないようにしたいのかどっちだ。 前者ならどのタイミングでだ。 ちなみに俺には全く分からん。
- 720 名前:名称未設定 mailto:sage [2009/03/19(木) 20:47:27 ID:I6nb5Wil0]
- >>719
選択処理自体が起こらないようにしたい としか読めなかったが
- 721 名前:名称未設定 mailto:sage [2009/03/19(木) 23:06:02 ID:6c/V/xKf0]
- エスパーの俺が思うにrowの選択時に特定のcolumnだけ選択状態にしたいってことだろう
いろいろやればできんこともなさそうだがその挙動ならTableView使わなければいいと思う
- 722 名前:名称未設定 mailto:sage [2009/03/19(木) 23:36:50 ID:bfz6W/740]
- エクセルのセルみたいに使いたいのかな
- 723 名前:名称未設定 mailto:sage [2009/03/20(金) 00:15:17 ID:Raq7MuIX0]
- >>718
NSTableViewのサブクラスで行が選択された時の挙動を制御できるかと。 リファレンスとか、ここ? d.hatena.ne.jp/sunpro/20080820/1219217880
- 724 名前:名称未設定 mailto:sage [2009/03/20(金) 03:53:24 ID:KD/uL4hGi]
- -_highlightRow:inCripRect:をオーバーライドしてマウスロケーションからカラムの位置を特定、clipRectを変更してsuperに渡せば大方のぞみの挙動では?
非公開メソッドだから使わないべきだけど。
- 725 名前:名称未設定 mailto:sage [2009/03/20(金) 16:07:07 ID:ztTjYrEW0]
- cocoaのサンプルコードを読むと、たいがい小数は
float型で宣言されています。 double を使わずに float を使う傾向があるようですが、 どういう理由によるものですか?
- 726 名前:名称未設定 mailto:sage [2009/03/20(金) 16:11:19 ID:iDYY1j1o0]
- 画面の座標がfloatだからじゃね?
- 727 名前:名称未設定 mailto:sage [2009/03/20(金) 17:28:10 ID:D7KrySdW0]
- >>726
64bit では座標は double なわけだが... そういう話なら >>725 の言うサンプルとやらも 適宜 double に変えないといかんね。 ってゆうか生の float とかを使うべきじゃないかもね。
- 728 名前:名称未設定 mailto:sage [2009/03/20(金) 17:40:13 ID:EvkiWkY40]
- >>727
CGFloat developer.apple.com/documentation/Cocoa/Conceptual/Cocoa64BitGuide/64BitChangesCocoa/64BitChangesCocoa.html#//apple_ref/doc/uid/TP40004247-CH4-SW13
- 729 名前:名称未設定 mailto:sage [2009/03/21(土) 08:44:05 ID:bG0sbfJc0]
- なるほど、Cocoaフレームワークでは画面の座標などで
float を使っているから、普段は float を使っていれば無難 という事ですね。
- 730 名前:名称未設定 mailto:sage [2009/03/21(土) 11:14:53 ID:7ylASo2t0]
- >>729
>>728 のどこをどうよむとそうなるのか判りませんが... 1. 昔は Cocoa は float でした。 2. Leopard になって、32bit では float, 64bit では double になりましたが、 そんなものかき分けられないので、 CGFloat と書くことにしました。 3. ですから今後は CGFloat と書いておくと、32bit でコンパイルしても 64bit でコンパイルしてもキチンと動きます。
- 731 名前:名称未設定 mailto:sage [2009/03/21(土) 22:41:06 ID:bG0sbfJc0]
- >>730
あ、すいません。よくわかりました。 ありがとうございました。
- 732 名前:名称未設定 mailto:sage [2009/03/22(日) 13:36:04 ID:YQgr14t00]
- 自分のCocoaアプリケーションがバックグラウンドにいるときに定期的な処理をすることは可能でしょうか?
昔のCWのCarbonアプリだとPowerPlantのSpendTimeを継承すれば可能でしたが、Cocoaだとやり方がよく わかりません。cocoa-devの中を検索していてCFRunLoopAddObserverでコールバックを登録すればいいの かと思いましたが、これだとフォアグラウンドのアイドリングでしかコールされませんでした。
- 733 名前:名称未設定 mailto:sage [2009/03/22(日) 13:41:15 ID:D0Hx6S+/0]
- NSTimer
- 734 名前:名称未設定 mailto:sage [2009/03/22(日) 14:37:42 ID:i9Um2BIK0]
- Cocoaで、ポップアップメニューとテキストフィールドがあって、
特定項目を選択したときだけテキストフィールドが有効になるように したいです。(タグ番号で区別など) Binding指定一発で行かないか調べているのですが、簡単な指定方法は ありますか? 現在、出来ているのは、 ・コントローラに値を持たせて、 ・ポップアップメニューのアクションでフラグをKVCで書き換えして ・テキストフィールドに反映させる方法 くらいです。
- 735 名前:名称未設定 mailto:sage [2009/03/22(日) 14:40:02 ID:D0Hx6S+/0]
- どうしても一発でやりたいんなら専用のNSValueTransformerを作るとか。
- 736 名前:名称未設定 mailto:sage [2009/03/22(日) 14:45:16 ID:D0Hx6S+/0]
- あーもちろんポップアップメニューで選択されるオブジェクトに該当するプロパティがあるんならそれ使えばいいよ。
- 737 名前:名称未設定 mailto:sage [2009/03/22(日) 15:16:49 ID:oZHejVcE0]
- >>734
つまり、NSMenuの特定のNSMenuItemを選択したときに、NSTextFieldのenabled値を変更したいんだよね? メニューから項目を選択したときに、コントローラーのプロパティーを変更して、そのプロパティーとテキストフィールドのenabledをバインドすればよいかと
- 738 名前:名称未設定 mailto:sage [2009/03/22(日) 18:16:51 ID:i9Um2BIK0]
- >>735-737
コメントありがとうございます。 なるほど、やはりBindingのなかで式を評価してもらえればとか、 つい期待してしまうのですけど、所詮は甘い考えでしたね。残念。
- 739 名前:名称未設定 mailto:sage [2009/03/22(日) 18:20:26 ID:645xXQJS0]
- NSMenuItemのタグを0か1にして、ユーザデフォルトにバインディング。
それをNSTextFieldのenabledにバインディング。
- 740 名前:名称未設定 mailto:sage [2009/03/22(日) 20:23:39 ID:hnBK/g2f0]
- タグを使うのはなかなか楽ちんで素晴らしいね
タグを別に利用できなくなっちゃうけど まぁバインディングしてアクセッサを書けばいいんじゃないかね
- 741 名前:名称未設定 mailto:sage [2009/03/22(日) 21:14:45 ID:i9Um2BIK0]
- >>739
おお、確かにそれだとコントローラに依存しなくて済みますね。 ・・・ただ、自分のコードはプラグインなので、親側のアプリの plistに書き込んじゃうような気がします。 少しひねってアイディアが使えないか考えてみます。
- 742 名前:名称未設定 mailto:sage [2009/03/22(日) 22:31:33 ID:6qTjK3TA0]
- >>741
>・・・ただ、自分のコードはプラグインなので、親側のアプリの >plistに書き込んじゃうような気がします。 なが〜い key にしておけば何の問題もないと思いますが。 com.bokuno.plugin.hagemenu とか。
- 743 名前:名称未設定 mailto:sage [2009/03/23(月) 18:55:34 ID:EF7hX8Ek0]
- >>739
menuItemのtagとUserDefaultsをバインドしても、tagとUserDefaultsの値が同期するだけで、メニューの選択によりUserDefaultsの値が変化する形にはならないと思うよ。 UserDefaultsの値を変化させたいなら、どこかで [bindedMenuItem setTag:1]; などといった処理が必要です。 >>741 プラグインっていうのは、Cocoa Bundleのことかな? メニューは親側のアプリが持っていて、そのテキストフィールドがプラグイン側にあるのだとしたら、IntarfaceBuilderでいくらがんばっても無駄ですよ。 メニュー選択のアクションを親アプリ側のコントローラで受け取り、親アプリ側のコントローラからプラグイン側のコントローラにフラグ値を設定する。 などといった方法を取るしかないと思います。
- 744 名前:名称未設定 mailto:sage [2009/03/23(月) 20:19:05 ID:jkNDz75K0]
- NSTableViewのフォントを変更したときにsetRowHeightでセルの高さを指定してやる必要が
ありますが、その数値をどう求めるべきかで迷っています。現在は使いたいNSFontのfontBounding.size.height を指定していて正常に表示されてはいるのですが、なんか上下にスペースが多すぎて間延びした ような感じに見えるのですが、かといってそれより小さい数値にするとフォントによって見切れるかも しれないような気もします。 ここで使うべき適切な数値に求め方ってあるんでしょうか?
- 745 名前:名称未設定 mailto:sage [2009/03/23(月) 22:58:51 ID:DDSljpI20]
- fontBoundingって何?
- 746 名前:名称未設定 mailto:sage [2009/03/24(火) 02:29:36 ID:1Hl/Tw2xi]
- NSStringとかNSAttributedStringのAppKitAdditionsにあるsizeWithAttributesやsizeあたりを使うのは?
- 747 名前:名称未設定 mailto:sage [2009/03/24(火) 08:58:24 ID:BucbIRTg0]
- Safari4 のようにタイトルバー上に描画したいのですが、
どのような手段があるでしょうか。
- 748 名前:名称未設定 mailto:sage [2009/03/24(火) 11:48:17 ID:OjHK9J6Y0]
- ウィンドウのパーツをすべて自前で用意して描画。
- 749 名前:名称未設定 mailto:sage [2009/03/24(火) 11:51:30 ID:NpoR6Dsl0]
- >>747
Snow Leopardまで待つのがいい気がする IBのパーツ的意味で
- 750 名前:名称未設定 mailto:sage [2009/03/24(火) 15:52:34 ID:UQpOmHiZ0]
- >>749
多分ないだろうね
- 751 名前:名称未設定 mailto:sage [2009/03/24(火) 16:52:58 ID:BucbIRTg0]
- >>749
あればいいんですけど・・・ Safari は今までのバージョンでも認証のあるサイトにいくと 右上にカギのマークが表示されてましたが、あの程度でも ウィンドウのパーツをすべて描画してるんでしょうか?
- 752 名前:名称未設定 mailto:sage [2009/03/24(火) 17:00:29 ID:J1mQBwRc0]
- 昔HMDTで「NSWindowのcontentviewのsuperviewのsubviewsとして追加する」という手を見た希ガス
試したことはない
- 753 名前:名称未設定 mailto:sage [2009/03/24(火) 17:16:52 ID:OjHK9J6Y0]
- >>751
その程度ならテクスチャ付きウィンドウのバックグラウンドを適宜変更することで出来そうな気が。
- 754 名前:名称未設定 mailto:sage [2009/03/24(火) 18:14:37 ID:ZfUbWmv40]
- NSView *view = [[window contentView] superview];
に貼り付ける。 undocumentedですが。
- 755 名前:名称未設定 mailto:sage [2009/03/24(火) 20:49:21 ID:pl3M8j5W0]
- >>747
NSGraphicsContext* gc = [NSGraphicsContext graphicsContextWithWindow:window]; [NSGraphicsContext setCurrentContext:gc]; /** ここで、NSBezierPathとか、NSImageとかを使って描画 **/ [gc flushGraphics]; これで、ウインドウ全体(タイトルバーを含めて)をlockFocusしたような感じになるので、タイトルバーエリアにも描画できます。
- 756 名前:名称未設定 [2009/03/24(火) 21:56:23 ID:LUOigXSf0]
- iPhoneなんですが、View-basedのプロジェクトを作成してXXXViewControllerに用意されている
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil をコメントアウトしてもこのメソッドが呼び出されないのですが他にどこか修正が必要なのでしょうか?
- 757 名前:名称未設定 [2009/03/24(火) 22:22:01 ID:LUOigXSf0]
- ああAppDelegateで自分でViewControllerをinitNibNameで作る必要があったみたいです。
- 758 名前:751 mailto:sage [2009/03/25(水) 07:54:32 ID:0SM9ZDQS0]
- ありがとうございました。やってみます。
- 759 名前:名称未設定 mailto:sage [2009/03/25(水) 13:12:12 ID:5iE+9ayji]
- >>756
コメントアウトの使い方がまちがっている。
- 760 名前:名称未設定 mailto:sage [2009/03/25(水) 14:15:35 ID:5bK3eLy80]
- コメントアウトアウトだな
- 761 名前:名称未設定 mailto:sage [2009/03/25(水) 20:49:30 ID:TIvJ7Wev0]
- ドックを右クリックした時に出るような吹き出し型のメニューを呼び出すAPIはありますか?
- 762 名前:名称未設定 mailto:sage [2009/03/25(水) 22:03:07 ID:pm0pHKwl0]
- 少なくとも正式なAPIとしては用意されていません
- 763 名前:名称未設定 mailto:sage [2009/03/26(木) 00:15:13 ID:rC0n3m6s0]
- >>762
それが分かっただけでも十分です ありがとうございます
- 764 名前:名称未設定 mailto:sage [2009/03/27(金) 06:14:28 ID:XlooH+OZ0]
- おまいらXcodeのテキストキーバインドって実際どのくらい使ってますか?
時代に乗り遅れて最近LeopardのXcodeに移行したんだけど使いこなし切れない とりあえずこれだけは便利だから使っとけってのは無いかな
- 765 名前:名称未設定 mailto:sage [2009/03/27(金) 06:58:00 ID:uVBk9I9P0]
- >>764
ctrl + / 次のプレースホルダ
- 766 名前:名称未設定 mailto:sage [2009/03/27(金) 20:55:36 ID:yJIEOHNY0]
- >>764
command + / 選択範囲のコメントアウト、コメントの解除
- 767 名前:名称未設定 mailto:sage [2009/03/27(金) 21:02:16 ID:G8IYg3Ly0]
- Objective-Cのメソッドの両側の括弧を自動的に入れてくれる機能。
- 768 名前:名称未設定 mailto:sage [2009/03/27(金) 21:35:53 ID:Eaa1yLc60]
- >>767
そんなのあるの?
- 769 名前:名称未設定 mailto:sage [2009/03/28(土) 02:54:55 ID:NZomFomOP]
- command + shift + alt + /
ドキュメントの表示。重い…
- 770 名前:名称未設定 mailto:sage [2009/03/28(土) 03:54:24 ID:yJwPFz9Ki]
- みんなスラッシュにこだわるなw
- 771 名前:名称未設定 mailto:sage [2009/03/28(土) 18:37:20 ID:0eMQjnwh0]
- ドキュメントの表示は opt+ダブルクリック
定義にジャンプは cmd+ダブルクリックだな。 >765 も使うけど その前に ctrl+. する。 ごくまれに cmd+opt+↑ 名前なんだっけ?ヘッダと実装ファイルのトグル。 cmd + opt + ← もたまに。
- 772 名前:名称未設定 mailto:sage [2009/03/29(日) 11:07:23 ID:FT9y+teW0]
- GCを使うis敗北ネ!!
ギリギリまでreleaseを我慢して YOUのアグレッシブなメモリマネージメントを見せつけてwant you !!!
- 773 名前:名称未設定 mailto:sage [2009/03/29(日) 11:19:21 ID:C5UY2wzI0]
- >>772
どうした?大丈夫か?
- 774 名前:名称未設定 mailto:sage [2009/03/29(日) 13:07:48 ID:PKo3KxaT0]
- 過開放のバグを潰すのに疲れたんだろう… きっと。
- 775 名前:名称未設定 mailto:sage [2009/03/29(日) 13:12:21 ID:BoW5aWaw0]
- 俺の知り合いで「autorelease を使ったら負け」とおっしゃる方がいたけどなw
どうやらメモリ管理をよくわからないものに任すのが嫌みたいなんだが。 まーそんなこと言い始めるとmalloc/freeあたりですら怪しいと思うんだがw 現実問題として、クラスによっては autorelease されたインスタンスが前提なのが あって、autorelease 無しには Cocoa は使えないんじゃなかったかな...
- 776 名前:名称未設定 mailto:sage [2009/03/29(日) 13:26:52 ID:PKo3KxaT0]
- autorelease使ったら負けって…
まあ他人の趣味だからいいけどさ。どう考えてもフレームワーク内部でAutorelease がんがん使ってんだから意味ないじゃん。
- 777 名前:名称未設定 mailto:sage [2009/03/29(日) 13:40:52 ID:0+hbEKM60]
- 昔々C言語の頃は配列の添字を使ったら負けで
ポインタをインクリメントしたら勝ちだったのさ まぁそう主張する奴のソースはコーディングレベルで最適化wしようとしたあげく アルゴリズムの方がおろそかになってたりしてたけどね
- 778 名前:名称未設定 mailto:sage [2009/03/29(日) 13:41:51 ID:6ZHfBTXx0]
- 理解していればどうということはない
使わざるを得ない時もあるし
- 779 名前:名称未設定 mailto:sage [2009/03/29(日) 14:37:03 ID:FT9y+teW0]
- 遅い奴には、コードは追えない。
そういうことさ……
- 780 名前:名称未設定 mailto:sage [2009/03/29(日) 14:43:36 ID:C5UY2wzI0]
- >>775
>どうやらメモリ管理をよくわからないものに任すのが嫌みたいなんだが。 autorelease pool は「よくわからなくないもの」では全くないと思うが... そいつが autorelease を「なんかよくわからんがいつのまにか解放してくれる」 とかいう風に勘違いしてたんじゃないの?
- 781 名前:名称未設定 mailto:sage [2009/03/29(日) 20:27:58 ID:IFUODtjp0]
- きっとその人はオートマの車を運転したら負けなんだろうな。
- 782 名前:名称未設定 [2009/03/29(日) 21:58:55 ID:Arvynqjh0]
- F-1でオートマ乗ったら負けだろうな
- 783 名前:名称未設定 mailto:sage [2009/03/29(日) 23:09:03 ID:0+hbEKM60]
- エンジンをかけるときはクランクを力強く一気に廻す
エンジンがかかると勢い良くクランクが回転するので あごの骨を砕かれる恐れがあるので顔を近づけない事
- 784 名前:名称未設定 mailto:sage [2009/03/29(日) 23:28:56 ID:ZtbTYtIP0]
- 自分に対して無駄な制限をかける人って、たまに居るよね
別にかまわないし、個人の自由だと思うけど 周りに迷惑がかかるようならやめて欲しい
- 785 名前:名称未設定 mailto:sage [2009/03/30(月) 00:12:23 ID:LEpUUYlh0]
- 宗教とかな
- 786 名前:名称未設定 mailto:sage [2009/03/30(月) 01:26:40 ID:/GsaEKKp0]
- もともと半分ネタな話題の上にさらにネタを重ねるけどもw
>>782 F1はオートマって言ってもセミオートマだし。で人間がクラッチ操作するより素早く シフトチェンジするし、いわば人間+技術で最高の効率を追求してる感じ。 autorelease は、オブジェクトの寿命をルーズにするから、メモリのある種の利用効率 という点では手動できっちり管理する場合より落ちる。って感じ。 さて、次は「retain/releaseを使ったら負け」でもいってみますかw
- 787 名前:名称未設定 mailto:sage [2009/03/30(月) 02:37:07 ID:utyEfR7Gi]
- >>786
開放するのがまけなんだろ、きっと。 男は黙って 確保したまま。 男は黙って 確保したまま。 メモリ不足でアプリが強制終了しちゃうよ〜
- 788 名前:名称未設定 mailto:sage [2009/03/30(月) 02:50:51 ID:OjkMXpC10]
- >>787
iPhone はともかく、Mac では >メモリ不足でアプリが強制終了しちゃうよ〜 てことはないのでは?
- 789 名前:名称未設定 mailto:sage [2009/03/30(月) 11:36:33 ID:NTIDxucM0]
- 32bitアプリで2GB超えたら強制終了したよ。
- 790 名前:名称未設定 mailto:sage [2009/03/30(月) 20:05:01 ID:cs/pyE5p0]
- 初歩的な質問で申し訳ないのですが・・・
NSTableViewで複数行があったとして、ファーストレスポンダが行最後のセルにあり、 ここでtabキーを押した時、次の行の先頭セルにファーストレスポンダを移す事って、 IBだけで出来るでしょうか?
- 791 名前:名称未設定 mailto:sage [2009/03/30(月) 21:13:10 ID:jWZzU8wmi]
- >>790
TableViewの内部のセル自体がファーストレスポンダになることはありません。 その場合、編集中ならセルの位置に表示されてるFieldEditorが、 そうでないならTableViewそれ自体がファーストレスポンダということになります。 IBだけではその制御はできません。
- 792 名前:790 mailto:sage [2009/03/30(月) 22:52:23 ID:cs/pyE5p0]
- >>791
なるほど、レスありがとうございました。
- 793 名前:名称未設定 mailto:sage [2009/03/31(火) 08:35:35 ID:5nYIQ3Ld0]
- >>787
>男は黙って 確保したまま。 別に dealloc は駄目とは書かれてないのだが.... 「ネタ」の意味が理解されなかったか。 だったらメモリリークしまくりのコードを書く奴は? 男も堕ちたもんだw
- 794 名前:名称未設定 mailto:sage [2009/03/31(火) 10:40:26 ID:g4GAqv8E0]
- 明示的にdeallocをしてはいけません
raleaseCountが0になった時オブジェクトは自動的にdeallocされメモリを解放します
- 795 名前:名称未設定 mailto:sage [2009/03/31(火) 10:42:51 ID:HzS6wNkv0]
- NSDrawerを使っていて時間のかかるループの前にこれを閉じたいんですけど
closeを呼んでも実際に閉じられるのはループが終わってからになってしまいます updateとかdisplayとかいろいろ呼んでみたんですがうまくいきません sendEventとかしないといけないんでしょうか?
- 796 名前:名称未設定 mailto:sage [2009/03/31(火) 10:53:36 ID:fhQmN1Q/0]
- drawer が閉じたのを確認した後で時間がかかるループを開始すればok
- 797 名前:名称未設定 mailto:sage [2009/03/31(火) 11:33:02 ID:SrzqsxLr0]
- Drawerの開閉が1回のイベントループ内で終わるのなら、
長い処理を [obj performSelector:@selector(hogehoge) withObject:nil afterDelay:0.0]; で次のイベントループで実行させればいいよ。
- 798 名前:名称未設定 mailto:sage [2009/03/31(火) 12:18:47 ID:g4GAqv8E0]
- NSDrawerDidCloseNotification
- 799 名前:名称未設定 mailto:sage [2009/03/31(火) 13:29:11 ID:HzS6wNkv0]
- >>797
ありがとうございます。やってみましたけどだめでした。すでに開いているNSDrawerがあって 特定のボタン(長いループのある処理に入る)が押されたときに閉じようとしています。 >>796 >>798 NSDrawerDidCloseNotificationを待ってから処理に入ればいいということでしょうか
- 800 名前:名称未設定 mailto:sage [2009/03/31(火) 21:19:34 ID:pZH39k4v0]
- ループの中身をメソッドで取り出して、
forでなく、runLoopにやらせるようにするだけでいい。 UIをブロックしなくなるし。ちょっと遅くなるけれど。
- 801 名前:名称未設定 mailto:sage [2009/03/31(火) 22:13:14 ID:W0bP27zQ0]
- くあしくコードプリーズ
- 802 名前:名称未設定 mailto:sage [2009/03/31(火) 23:32:05 ID:g4GAqv8E0]
- 初心者なら素直に木下本買ってこい
|

|