Cocoaはさっぱり!!! version.6

このエントリーをはてなブックマークに追加
937名称未設定:2006/10/11(水) 14:13:50 ID:gUmtjTHD0
なんで、したりがおなのかさっぱりわかりませんが、
-[NSTimer invalidate] をなげると、れしーばーは、らんるーぷからとりのぞかれます。
つまり、さいとうろくしなないかぎり、たいまーとしてはたらきません。

-[NSTimer fire] は、たーげっとにたいして、めっせーじをそうしんするめそっどです。
このばあいは、self にたいして、-[Metronome CallBack:] がなげられます。

つまり、>931 はまったくいみふめいな、とんちんかんなものです。
938名称未設定:2006/10/11(水) 14:16:16 ID:gpdU8zAd0
>>937
なるほど。よくわかりました。

>>925
というわけです。
939名称未設定:2006/10/11(水) 14:28:07 ID:XO3lNLzb0
>>929のやり方が妙に気になる。
940名称未設定:2006/10/11(水) 14:48:49 ID:gUmtjTHD0
- (IBAction)StartStop:(id)sender
{
static NSTimer *timer = nil; // いんすたんすがふくすうのときは、いんすたんすへんすうにしないとだめ。

if(timer) {
[timer invalidate];
[timer release];
timer = nil;
return;
}

timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(CallBack:) userInfo:NULL repeats:YES];
[timer retain]; // なくてもいいけど、「もってるよ」としゅちょうしておく。
}

というほうほうもある。
いんでんとつけるのめんどうくさい。
941名称未設定:2006/10/11(水) 14:57:11 ID:ZGPLLPKC0
scheduledTimerWithTimeInterval:1.
このIntervalの数値を見て思ったんだが、
これは定期的に音を鳴らしたいというよりは、
連続して音を鳴らしたいって意味じゃないのか。
それならもっと別の手法もあるんだけどな。
942名称未設定:2006/10/11(水) 15:01:01 ID:gSf29chT0
>>928 の突っ込みは放置?
[wTSound play]の時点でwTSoundは不定なような気がする。
943名称未設定:2006/10/11(水) 15:05:38 ID:JHPG+IJP0
>>940
「なくてもいいけど」のところをしょうりゃくすると、
double freeでランタイムエラーがおきませんか?
それともつり?
944名称未設定:2006/10/11(水) 15:11:45 ID:gUmtjTHD0
>>943
retain しないなら release しないでしょ。
そこまでかかないと、わかりませんか?
945名称未設定:2006/10/11(水) 15:14:03 ID:JHPG+IJP0
>>944
わりとくだらないことにまでつっこむのがすきなひとなのかと思いまして。
おこりっぽいんですね。
946名称未設定:2006/10/11(水) 15:40:14 ID:gUmtjTHD0
>>945
おこったんじゃないです。
ふつうにわからないかどうかが、わからなかったです。
もじでかんじょうをつたえるのは、むずかしいですね。
947名称未設定:2006/10/11(水) 16:14:11 ID:VKAa2sv50
ひらがなでかくとあまりさつばつとしていないようにかんじるかもしれないけど
あいてをばかにしているともとられるきがす
ていうかよみにくすだぶりゅー
948名称未設定:2006/10/11(水) 16:52:30 ID:81SxFUz2O
だぶりゅーわろすだぶりゅーだぶりゅーだぶりゅー
949名称未設定:2006/10/11(水) 17:04:26 ID:IAYeDbFK0
さぉりとかいたよな
950さぉり:2006/10/11(水) 17:13:58 ID:ph3mhrLZ0
ポインタとかstaticとか、説明がないとさっぱりわからないんですけど??
もっとわかりやすいホームページとか教えてください。みんな不親切ですね。





みたいなテンションの人ね。
動物園にいるならば多少は面白かったかもしれない。
951名称未設定:2006/10/11(水) 17:51:04 ID:Qjx8Gy0C0
>>950
似てるw
952名称未設定:2006/10/11(水) 21:43:01 ID:Vs3QQzMK0
あのさー、
>>925 の「数回に1回、音が何故か2回鳴っちゃう」という原因に関しては
結局たどり着いていないような。もし >>926 なら、「数回に1回」にはならないよね。

ランループが乱れる要素があるせいかな?
このコードだと、メインスレッドのランループにタイマーが登録されるから、
UI をいじったりするとタイマーの実行間隔が乱れうるよね。
>>925 のアプリで、書いてあるコード以外に何が動いているか知らんが...

もしそうならタイマーを別スレッドにでもした方がいいのかな。

そういえばリアルアイムに走る(走らせられる)スレッドってあるんだっけ?
音楽系のアプリとかってどうなっているのか気になってるんだが。
953(・∀・):2006/10/12(木) 01:18:11 ID:LwR2yQv30
>>952
>>>925 の「数回に1回、音が何故か2回鳴っちゃう」という原因に
わはは、その通りだね。でも明確な理由をかける人も
いないんでしょう。オレも分からん。
仮想マシンだからサウンド・ボードにどれだけ同期を保証しているか
見えないし。Timer自身の精度も保証されてないから。
そんなものだ。としかいえない。>>925
954名称未設定:2006/10/12(木) 10:50:12 ID:71lhc7Dt0
>仮想マシンだからサウンド・ボードにどれだけ同期を保証しているか
>見えないし。Timer自身の精度も保証されてないから。
????????
そんな細かい話がひつようなところか?
955名称未設定:2006/10/12(木) 13:35:11 ID:Rg+hK3Nr0
本当のメトロノームを作りたいなら精度が求められるでしょうね
NSTimer と NSSound で作るなら「簡易」メトロノーム程度にしかならないでしょう
956名称未設定:2006/10/12(木) 16:27:00 ID:vgJeAgwV0
NSGridViewって凄いのかなぁ
楽しみだなぁ
957名称未設定:2006/10/12(木) 18:57:52 ID:OIDPMcdX0
CoreDataの勉強しようと思ってXcodeを立ち上げたら
俺のiBookはPantherだったので使えなかった...orz
958名称未設定:2006/10/13(金) 03:49:30 ID:H7XRKrky0
スレッド違いだったらすみません。
初心者です。
os X 10.4.8 で、純正DVDに入ってた Interface Builder で
いろいろとウインドウデザインを試行錯誤して作っているのですが、
右上にボタン(ブラウザの戻るボタンみたいなもの)をつけています。
で、実際に立ち上げてさわってみると、ウインドウリサイズしたとき
ボタンの位置はそのままで隠れてしまいます。

これを、ウインドウの縮小拡大に沿うように貼り付けるには
どのようにしたらいいのでしょうか。
959名称未設定:2006/10/13(金) 04:37:31 ID:dHydwTkN0
Interface Builder でボタンの位置がウインドウの拡大縮小に沿うようにすればいいだろう。
右上固定なら左と下を可動にすればいい。
960名称未設定:2006/10/13(金) 11:36:22 ID:78vJkeZ/0
>>958
ボタンを選択してインスペクタで「Size」を選ぶと
http://www.mujmac.cz/images/cocoa24_3.jpeg
こういうのが出るでそ。
これがウィンドウとボタンの位置関係を表してる。
あとはいろいろクリックしてCmd+Rして体で覚えて。
961名称未設定:2006/10/13(金) 13:57:48 ID:5E+IsYdO0
コマンド+R でテストモード
コマンド+Q でテストモード終了。
962958:2006/10/13(金) 15:08:50 ID:H7XRKrky0
ありがとうございましたー。!
テストモードは便利ですね。知りませんでした。
963名称未設定:2006/10/13(金) 18:10:32 ID:EKZdZw6R0
バネが可変
棒が固定
964名称未設定:2006/10/14(土) 18:46:33 ID:i+5Lo1Pz0
いつもお世話になってます>All

OS10.3で和暦に対応したプログラムを書きたいのですが、システム設定から
持ってくる方法って無いんでしょうか?
10.4からだとNSCalendar一発でできそうな気がするんですが、10.3だと対応
していないみたいなので、システム設定から持ってこれるのならいいかな、と。
よりよい方法がありましたら教えてください。お願いします。
965名称未設定:2006/10/14(土) 21:50:37 ID:XRV3TEO30
>>964
>OS10.3で和暦に対応したプログラムを書きたいのですが、

それが具体的にどういうものかによる。
最近の日付を平成... とか表示したいだけなら、NS(Calendar)Date とかで済むかも。
カレンダーウィジェットみたいに昔の年号とかもサポートしたいとなると面倒くさそう。
それは

>システム設定から持ってこれるのならいいかな、と。

どうやら NS/CFCalendar は年号等を ICU というライブラリの関数 (ucal) から
引っ張ってくるように見える。
10.3 にも ICU はあるようなので (libicucore.dylib)、これがちゃんとしていれば、
自分で NS/CFCalendar 相当分を書くのは不可能ではないかもw

今ググったら、和暦<->西暦を変換するマック用のソフトがあった。リソースデータを
調べたら自前で年号名を持っていた。のでこれをパクるという手もなくはないw
(というわけでソフト名はあえて書かないw)
966名称未設定:2006/10/14(土) 22:21:27 ID:i+5Lo1Pz0
>>965
>>自分で NS/CFCalendar 相当分を書くのは不可能ではないかもw

ちょwww
実力的、時間的に不可能ですww

日本史に出てくるすべての年号を表示したかったんですが、その場合南北朝のダブル年号表示
がネックになるのでやめました。カレンダ−ウィジェットはどういう表記なんでしょうね?
残念ながらそんな回数クリックする根性はありませんがw

最近の(といっても過去は明治くらいまで表示したい)日付を持ってくるだけでいいんです。
やっぱり自前で年号名を持たせるしか無いんですかね・・・とりあえずそのソフトをググって
調べてみます。パクりませんよ〜w
967名称未設定:2006/10/14(土) 23:18:29 ID:7Q9emVii0
ていうか明治以前は陰暦にするの?それはかなり辛いんでは...
968名称未設定:2006/10/15(日) 03:04:49 ID:sTo6GLwB0
明治も5年まで陰暦だから気をつけてね。
閏月もあるし。
969名称未設定:2006/10/15(日) 11:38:55 ID:pSfxPY7L0
太陰太陽暦も、時代によってイロイロ微妙に変化してるからねえ。
元嘉暦 儀鳳暦 大衍暦 宣明暦 貞享暦 宝暦暦 寛政暦 天保暦
970名称未設定:2006/10/15(日) 15:51:04 ID:KHoeWjFZ0
>>969
過去の日付だけならテーブルを持っておけばいいだけだから暦法は
あまり関係ない。

問題は文献によって日付が食いちがったり、内乱のせいで複数の暦が
同時に行なわれていたり、地方ごとに別の暦が行なわれていたりする
場合だけど、江戸時代以降にかぎればそれほど問題ないとおもう。


971名称未設定:2006/10/15(日) 15:56:11 ID:DNZXpkU/0
>>966
>>>自分で NS/CFCalendar 相当分を書くのは不可能ではないかもw
>ちょwww
>実力的、時間的に不可能ですww

多分 ICU には日付データを与えると暦の名前が返ってくるような関数が
あると思うんだけど、それを呼び出す部分を作るだけならどうにか、
と思ったのだが。

NSCalendar そのものには ObjC のクラスとしての体裁を整えるコードがいっぱい
入ってるだろうから、それまで書くというのは確かにアレだが。

>残念ながらそんな回数クリックする根性はありませんがw

自分で NSCalendar を使ったお試しコードを書いてみればいいじゃんw

でも、ICU ってこんな複雑な日本の暦を本当にサポートできてるのかねえ。
972964:2006/10/17(火) 00:04:49 ID:FyP7runb0
>>971

>自分で NSCalendar を使ったお試しコードを書いてみればいいじゃんw

おっしゃるとおりですw
試しにやってみたら大化まで表示できたよ。
お世話になりました、ありがとう!

>>967-970
日本の暦って難しいんでつね・・・
そこまで複雑じゃなくてよかったんで、今回は助かりました。
また何かあったら書き込みます。本当にありがとう!
973名称未設定:2006/10/17(火) 05:36:54 ID:5nQ5p4fa0
>試しにやってみたら大化まで表示できたよ。

まじかい。想定外。
974名称未設定:2006/10/17(火) 08:46:16 ID:yCtgDnDn0
Cocoa始めたばっかりの初心者用のスレはありませんか?
975(・∀・):2006/10/17(火) 09:26:50 ID:yLCHAHfb0
過疎スレに初心者用なんて無いよ。ここでOK。
976名称未設定:2006/10/17(火) 10:54:01 ID:BhY2kEQh0
>>972

自分でもやってみた。うーん。なんか 645 より前を指定しても全部大化に
なってしまうような。大化のあとの元号のない時代にも全部元号がついて
いる。南北朝時代は南朝に固定。

元号と年だけで、月日はグレゴリオ暦になっている?

元号の変わる日付だけはなんかがんばってるようだが、元年以外はグレ
ゴリオ暦に正月一日とともに年が変わる。

かなり謎めいた仕様。
977名称未設定:2006/10/17(火) 12:40:29 ID:ZTBPxdK80
>>976
謎めいたも何も、要するに普通のグレゴリオ暦に日本の年号対応させたってだけの話でしょ。
そりゃあ太陰暦なんかに対応してたら換算するのに便利かもしれないけど、
その時代の「グレゴリオ暦で表した日付」を定義するとしたらそれで十分だと思う。

追求していくと「この時代に『刻』じゃねーのはおかしい」とかなっちまう。
978名称未設定:2006/10/17(火) 18:54:52 ID:DH8+tsPy0
NSTableViewのリストにNSButtonCellをはりつけているのですが、
リスト上のボタンをクリックすると、ボタンがある行に
リストのセレクションが切り替わります。

セレクションが切り替わらないように制御したいのですが
制御する方法がみつからなくて困っています。
NSButtonCellを派生する方針が良いのでしょうか…?
979978 :2006/10/19(木) 20:57:41 ID:qK+va4yo0
NSButtonCellより前にNSTableViewが
クリックイベントに反応するので
全くお手上げです…orz
たすけてぇ〜〜〜
980名称未設定:2006/10/19(木) 21:03:10 ID:PyA+g9MP0
>>979
んー、話はわかるけど、
どういう時にそんな妙な挙動をしたいのか想像がつかないんだけど。
981名称未設定:2006/10/19(木) 21:04:28 ID:fraomPvk0
tableView のサブクラスにmouseDownを書いて、ここでイベントをキャッチして、
なんとかして手動でボタンの表示をかえる
等すれば、列は選択されないと思う。

>>88 あたりを参照。 OutlineViewだけど、TableViewでも同じだと思う。
982名称未設定:2006/10/19(木) 21:20:31 ID:HDVqrw4/0
>>980
iTunesのチェックボックスなんかはそういう動作やね
983名称未設定:2006/10/19(木) 23:47:50 ID:PyA+g9MP0
>>982
言われて試してみれば。なるほど。

>>979
というわけで、他の方もアドバイスされているように、
・MyTableViewでmouseDown:を検知
→ eventのlocationからColumnを調べる
→ locationがButtonCellのColumnだった場合にはRowを調べ、
 該当のButtonCellにsetState:とか送って、Rowのセレクトは変えない
みたいな方針でいけると思いますよ。
984名称未設定:2006/10/20(金) 00:03:17 ID:NCVYdCQ70
tableviewのcellをつかわずに直接frameを取得してaddSubview:で張り付けると
勝手にそういう仕様になるね

まあ、リサイズしたり順番を入れ替えたりしたいなら向かないけど
985名称未設定:2006/10/20(金) 00:33:00 ID:fpP7aaMO0
カラーパネルやDeveloperToolsのDigitalColor Meterのように、
指定した座標の画素の色をNSColorで取得するにはどうすればいいでしょうか。
986名称未設定
NSReadPixel()でできました