1 Name: 名称未設定 [sage] Date: 2008/01/24(木) 01:47:00 ID: /Ae+OMPn0 Be:
初心者は教えてくれる方への感謝を忘れずに。
上級者も初心者だった頃の気持ちを忘れずに。

前スレ
Cocoaはさっぱり!!! version.8
http://pc11.2ch.net/test/read.cgi/mac/1179498292/
2 Name: 名称未設定 [sage] Date: 2008/01/24(木) 02:06:19 ID: zBsL8SS+0 Be:
2?
3 Name: 名称未設定 [] Date: 2008/01/24(木) 09:31:19 ID: s+4xNGMC0 Be:
今日は寒いから、ラム入りココア!
4 Name: 名称未設定 [sage] Date: 2008/01/24(木) 09:38:09 ID: yVuwS2iA0 Be:
なぜMacプログラミングはこんなに寂れてしまっているのか
http://www.vector.co.jp/vpack/whats/
5 Name: 名称未設定 [sage] Date: 2008/01/24(木) 09:41:49 ID: T1Kwwqvq0 Be:
Macに限らずWindowsでもだが、Vectorはもう見限られてる。
6 Name: 名称未設定 [sage] Date: 2008/01/24(木) 10:00:53 ID: uLUkYs720 Be:
ダウンロードにたどり着くまでにエロゲの広告が一杯出るからなあ
7 Name: 名称未設定 [sage] Date: 2008/01/24(木) 10:41:24 ID: vV8dED/00 Be:
vectorの存在忘れてた
昔は便利だったのだろうが、昨今ではどうだろうね
8 Name: 名称未設定 [sage] Date: 2008/01/24(木) 11:47:27 ID: /Xbx9Tjk0 Be:
Vector は掲載を申し込んでから実際に掲載されるまでに1ヶ月かかるんだよ。
アップデート時も同様。
MacUpdate とか Version Tracker は数時間なのに。
9 Name: 名称未設定 [] Date: 2008/01/24(木) 19:42:14 ID: 4xv9sIsr0 Be:
どこから登録したらいいか、すぐ分からなかったのでやめた。
登録させたくないとしか。
10 Name: 名称未設定 [] Date: 2008/01/24(木) 20:12:29 ID: nQjPjB6N0 Be:
M女史ですら登録できてるのに
11 Name: 名称未設定 [sage] Date: 2008/01/24(木) 20:51:54 ID: e2gLsBWo0 Be:
NSOutlineViewで階層表示、ドラッグ&ドロップで並び替えの
良いサンプルはないでしょうか?

機能を実現するための考え方というか仕組みが分からず
苦労しています。

NSTableViewでのドラッグ&ドロップで並び替えはわかったのですが。
12 Name: 名称未設定 [sage] Date: 2008/01/24(木) 22:52:54 ID: Cl70dvtl0 Be:
>>11
LeopardならAppleのsample codeのAbstractTree、SourceView

Leopardより前なら古いけれどDragNDropOutlineViewが
Developer/Examples/AppKit/DragNDropOutlineView
にあります

13 Name: 名称未設定 [sage] Date: 2008/01/25(金) 19:40:32 ID: S+ZRut250 Be:
なんか日本でcocoaのプログラマーって10人いないような気がする。
14 Name: 名称未設定 [sage] Date: 2008/01/25(金) 19:55:32 ID: FluJhFso0 Be:
すげーな
お前も俺もレアモノだぜ
15 Name: 名称未設定 [sage] Date: 2008/01/25(金) 20:17:12 ID: rI2glRe80 Be:
いくらなんでも希少種と呼ばれる麻薬取締官より少ないってことはあるまい。
16 Name: 名称未設定 [sage] Date: 2008/01/25(金) 20:41:30 ID: D6FaF35S0 Be:
それはないw
17 Name: 名称未設定 [] Date: 2008/01/25(金) 20:46:08 ID: efY+uiCx0 Be:
Javaだったら、Socketとか、SocketChannelを使うケースって、
Cocoaだと、どうするのですか。
Cを使う必要があるのでしょうか。
18 Name: 名称未設定 [sage] Date: 2008/01/25(金) 22:28:04 ID: lGCqdeBy0 Be:
Cを使った方が間違いないと思うよ
むかーし、CocoaだけでXMLやSocketを実現しようとしたけど、
バグっぽくて嫌になったorz
C++のライブラリを使ったObjC++がおすすめ
19 Name: 名称未設定 [sage] Date: 2008/01/25(金) 23:27:19 ID: dCMPysux0 Be:
>>13
「Cocoaで食ってるプロ」なら10人いないかも
20 Name: 名称未設定 [sage] Date: 2008/01/26(土) 00:11:21 ID: 42x0AZNA0 Be:
>>17
client も server もCocoa だけで済むなら、Distributed Objects つかうと
めちゃめちゃ簡単ですよ。
21 Name: 名称未設定 [sage] Date: 2008/01/26(土) 00:45:22 ID: 42x0AZNA0 Be:
http://developer.apple.com/documentation/Cocoa/Conceptual/DistrObjects/DistrObjects.html
のへんとか。
22 Name: 名称未設定 [sage] Date: 2008/01/26(土) 02:52:40 ID: zd6T2u+m0 Be:
Cocoaだけで完結するプロジェクトなんてないでしょう
23 Name: 名称未設定 [sage] Date: 2008/01/26(土) 09:25:36 ID: 42x0AZNA0 Be:
ええっと僕に言われてるのだとすると、
Cocoa だけ、と書いたのは、プロジェクトが全部ココアだけ、
ということではなくて、
Client も Server も Cocoa つかったソフトで良ければ、ということです。

実際に、案外のフリーウェアでサポートされてる LinkBack とか Growl とかは
Cocoa の Distributed Objects で実装されてるけど、
Carbon app とかスクリプトからも使えます
24 Name: 名称未設定 [sage] Date: 2008/01/27(日) 01:57:57 ID: FVS3vl130 Be:
暇だから日本人のCocoaプログラマを知ってるだけあげてみるか。
mkinoさん、荻原さん、nakamuxuさん
まだまだいるはずだけどぱっと出てこないもんだなあ。もっとあげられる暇な人いる?
25 Name: 名称未設定 [sage] Date: 2008/01/27(日) 02:08:39 ID: jtZNwbED0 Be:
Digitalians' Alchemyの人。
26 Name: 名称未設定 [sage] Date: 2008/01/27(日) 02:41:19 ID: mqS2hNH70 Be:
27 Name: 名称未設定 [sage] Date: 2008/01/27(日) 02:48:04 ID: Kw+jrJKi0 Be:
10人どころか5人もいねえw
28 Name: 名称未設定 [sage] Date: 2008/01/27(日) 04:47:59 ID: nttUWrdb0 Be:
hetimaさん俺
29 Name: 名称未設定 [sage] Date: 2008/01/27(日) 08:44:22 ID: InynCMyW0 Be:
名取り、さわっち、まさき
30 Name: 名称未設定 [sage] Date: 2008/01/27(日) 08:50:27 ID: sMOKTW0+0 Be:
プログラミングする気がないなら無理に来なくていいんだよ
31 Name: 名称未設定 [sage] Date: 2008/01/27(日) 10:02:11 ID: uLYFX0yW0 Be:
松本さんとか永野さんとか
32 Name: 名称未設定 [sage] Date: 2008/01/27(日) 10:47:06 ID: CW8LN0Lg0 Be:
俺俺、俺だよ、俺
33 Name: 名称未設定 [sage] Date: 2008/01/27(日) 13:04:54 ID: ddsvCdr30 Be:
IBでボタンにリターンキーを割り当てると、
テキストフィールド上で文字の決定でリターンキーを押した時にもボタンが反応してしまいます。
どうやって回避したらいいんでしょうか?
あと、矢印キーに至ってはボタンに割り当ててしまうと
テキストフィールドで矢印キーでの操作がまったくできなくなってしまう始末です。
34 Name: 名称未設定 [sage] Date: 2008/01/27(日) 13:16:25 ID: Z+4QpQ0X0 Be:
ボタンにキーを割り当てるのは良くない気がする。
NSWindow サブクラス化とかでキーイベントひろって、ターゲットを呼び出せば?
35 Name: 名称未設定 [sage] Date: 2008/01/27(日) 14:10:58 ID: NSDBpLCP0 Be:
>>33
そりゃサブクラスのファーストレスポンダあたりの設定がおかしいんじゃまいか。
変換決定のリターンキーではデフォルトボタンは反応しないよ。
36 Name: 名称未設定 [sage] Date: 2008/01/27(日) 16:43:50 ID: 3qPDxaPt0 Be:
NSなんたらviewのサブクラスを作って右クリックでコンテキストメニューを
表示させているのですが、10.4だと表示されて10.5だと表示されません。

なにか仕様が違うのでしょうか?
37 Name: 名称未設定 [sage] Date: 2008/01/27(日) 16:47:48 ID: oxF7lnRH0 Be:
また仕様ですか君か。
違っているから、自分で調べなさい。
38 Name: 名称未設定 [sage] Date: 2008/01/27(日) 18:40:43 ID: YX2EedA00 Be:
>>33は変換確定ではなくて改行の事を言っているのでは?
NSTextFieldじゃなくてNSTextViewを使えばどう?
39 Name: 名称未設定 [sage] Date: 2008/01/27(日) 18:42:05 ID: Se/+uO9l0 Be:
37はMSMVP工作員
40 Name: 名称未設定 [sage] Date: 2008/01/27(日) 22:46:02 ID: ddsvCdr30 Be:
>>34
key EquivだとIB上でできるので楽だと思ったのですが、あまり良くないのですね;
>>35
変換決定でなくてアクションを送るためにリターンキーで決定する時、ということでした。
>>38
NSTextViewを使ったことがなかったので、勉強してみます。

みなさんありがとうございました。
で、問題だった部分ですが、
テキストフィールドにアクションのターゲットを設定してやれば解決しました。
ターゲットがあればそちらにレスポンダチェインが走って(?)
ターゲット先でなんらかのアクションが起きてチェインが終了、他のボタンにはチェインは送られない
ということなのかなと、とりあえずは解釈しました。
41 Name: 名称未設定 [sage] Date: 2008/01/27(日) 22:55:30 ID: ddsvCdr30 Be:
あ、ちなみに矢印キーをボタンにセットすると
NSTextFieldとNSTextViewどちらでも矢印キーが使えなくなってしまうみたいです。
42 Name: 名称未設定 [sage] Date: 2008/01/28(月) 10:06:56 ID: /ciPWHQy0 Be:
LeopardにしたらsetControlTint:NSGraphiteControlTintが効かんようになっとるじゃないか
43 Name: 名称未設定 [sage] Date: 2008/01/28(月) 22:09:02 ID: YFjOEr6f0 Be:
アレイコントローラーにデータがロードされた直後に
一回だけ処理をしたいのですがさっぱりです。
44 Name: 名称未設定 [] Date: 2008/01/29(火) 13:33:05 ID: 14AFSb+t0 Be:
Windowを最前面に固定するのってどうするの?
45 Name: 名称未設定 [sage] Date: 2008/01/29(火) 14:59:24 ID: FsQS6A+l0 Be:
CALayer の contents に登録してある CGImageRef から
CIImage に変換したいんだけど,
CIImage *image = [CIImage imageWithCGImage: layer.contents]
であってますかね?

やりたいことは,CoreAnimation の2つのレイヤーから画像をとり出して,
CIFilter かまして,CoreAnimation の結果格納用レイヤーに画像をはめ込みたいのです.
46 Name: 名称未設定 [sage] Date: 2008/01/29(火) 16:04:52 ID: /eQnXvPk0 Be:
やっと直った。Xcode3+IB3

Cocoaアプリケーションチュートリアル
http://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjCTutorial
47 Name: 名称未設定 [sage] Date: 2008/01/29(火) 16:10:32 ID: aFFUaCVD0 Be:
>44
// スクリンセーバーよりも前に出せ
[theWindow setLevel:9999];



48 Name: 名称未設定 [sage] Date: 2008/01/29(火) 16:14:44 ID: waybUL+d0 Be:
>>46
しかし、なんだこの中華なフォントは?
49 Name: 名称未設定 [sage] Date: 2008/01/29(火) 16:15:40 ID: /eQnXvPk0 Be:
国際化って奴だろ。
50 Name: 名称未設定 [sage] Date: 2008/01/29(火) 19:50:55 ID: 14AFSb+t0 Be:
>47
ありがとう。
最前面のちっちゃいメモがあればいいと思ってたので助かった
51 Name: 45 [sage] Date: 2008/01/29(火) 22:55:26 ID: Weo8Bh4n0 Be:
自己解決しました.キャストがないだけだった orz
CIImage *image = [CIImage imageWithCGImage: (CGImageRef)layer.contents]
52 Name: 名称未設定 [sage] Date: 2008/01/30(水) 00:06:41 ID: kQnUgB310 Be:
>>46
やっと直ったじゃなくて、リンク切れてたから
おとといぐらい ADC に連絡したんだけど。
24時間ぐらいで直したよ、って返事来てたよ。

というわけで皆さんも ADC にじゃんじゃん連絡しましょう。
53 Name: 名称未設定 [sage] Date: 2008/01/30(水) 08:44:26 ID: 8y/Wb65A0 Be:
HMDTつならがない...
54 Name: 名称未設定 [sage] Date: 2008/01/30(水) 09:12:46 ID: ggAgLyT80 Be:
つながるけど?

>>52
ADCって日本語スタッフいるの?直接本家ADCに連絡すればいいんすか?
55 Name: 名称未設定 [sage] Date: 2008/01/30(水) 11:23:33 ID: kQnUgB310 Be:
直接本家に言ったら直してくれたよ。
56 Name: 名称未設定 [sage] Date: 2008/01/30(水) 13:57:14 ID: ggAgLyT80 Be:
サンクス、積極的に連絡してきます
たまにリンク切れとかあるんすよね
57 Name: 名称未設定 [sage] Date: 2008/01/31(木) 00:39:07 ID: ut76z/B00 Be:
NSOpenpanel について質問させて下さい。

何か開くと、ポップアップメニューの「最近使った場所」に自動的に追加されますが、
この情報はどこに保存されているのでしょう?
~/Library/Preferences/(BundleIdentifier).plist には含まれていないようなのです。

OS 10.4.11 Xcode 2.5
58 Name: 名称未設定 [sage] Date: 2008/01/31(木) 00:49:48 ID: 5dWW8izh0 Be:
NSRecentDocumentRecords?
59 Name: 57 [sage] Date: 2008/01/31(木) 00:54:09 ID: ut76z/B00 Be:
>>58
それはファイルメニューの「最近使った項目」のほうですよね。
僕が言ってるのはNSOpenPanelのタイトルバー下にあるポップアップメニューのです。


で、自己レスですが、色々試してたら気付きました。この情報は全てのアプリで共通なんですね。
~/Library/Preferences/.GlobalPreferences.plist の NSNavRecentPlaces にありました。

自分で編集できないかと思ったんですが、他のアプリと共通なら
(NSUserDefaultでできるのかもしれませんが)すべきでないんでしょうね。
60 Name: 名称未設定 [sage] Date: 2008/02/01(金) 12:39:56 ID: JVdTTK6m0 Be:
Cocoaというか、プログラミング自体初めてなんだけど難し過ぎて挫折したw
サイト参考にして簡単な計算やHelloworld、
簡単なGUI作ってボタン押したら数字がtextviewに表示されるのとかやったけど、
ファイル読み込んでそれを表示させたり、編集できるようにしたり、とかなると、
もう訳分からない単語ばかり出てきて頭が痛くなったw
とりあえず、IBでGUIだけでも完成系に近いものを組み立ててそのままにしてる。

プログラミングできる人、本当に尊敬するわ。
61 Name: 名称未設定 [sage] Date: 2008/02/01(金) 13:18:34 ID: 6z2zxgjy0 Be:
>>60
俺も全くわからなかったが、ヒレガス本読んだらかなりできるようになった。
プログラミング初めてならCからやった方がいいね。
62 Name: 名称未設定 [sage] Date: 2008/02/01(金) 13:19:28 ID: TGU2uzhR0 Be:
まずは住所録ぐらいから始めてみては?
いきなり目指すアプリを作るのは大変ですよ。

普通(タイトルバーや左上にボタンがついた)のNSWindowを
フルスクリーンにしたり元のWindowに戻したりするには
どうすれば良いのでしょうか?

ネットで探すと別途でNSWindowをallocして初期化でボーダレスに
したりしているのが多いのですが、そうではなくて例えばプレビューで表示させている
ウインドウをそのままフルスクリーンにしたいのです。

どうかよろしくお願いします。
63 Name: 名称未設定 [sage] Date: 2008/02/01(金) 13:40:03 ID: gj02vTeJ0 Be:
レパードなら NSView の
enterFullScreenMode:withOptions:
で出来ますが、レパード以前だと別途 alloc しか仕方がないと思います。

別途 alloc でもそんなに面倒くさくないですよ。
[newWindow setContentView:[oldWindow contentView]]
とかするとオッケーだったと思います。
64 Name: 名称未設定 [sage] Date: 2008/02/01(金) 13:41:28 ID: JVdTTK6m0 Be:
レスサンクスです。

>>61
C言語ですか、、、。道のりはかなり長そうですね、、。
ヒレガス、、ちょっとググって見ますね。
ありがとうございます。

>>62
住所録ではないですが、
TableViewを使って、左側に名前、右側に収入を入力(記録)できるものは作ってみました。
ビデオをチュートリアルを参考にしたんですけどね、、。
作りながら各文がどういった動作をさせているのか
説明を聞きながら理解しようとして作成しましたが、やはり初めて一週間ちょっとだと
難しいですね。ややこしいというか。これがパッと分かって簡単だと感じる人ってすごいです。

ちなみに参考にした動画はこれです。
ttp://revver.com/u/masna/

ここのNSArrayController & Cocoa Bindings Tutorialというビデオです。
ほかにもいろいろ動画がありました。
65 Name: 名称未設定 [sage] Date: 2008/02/01(金) 14:03:06 ID: 5TPP70fY0 Be:
俺も最近Cocoa始めたけど
NSなんたらController系が逆にわかりにくくて
手書きでちまちまコントローラを書いてしまう
66 Name: 名称未設定 [sage] Date: 2008/02/01(金) 14:06:51 ID: JVdTTK6m0 Be:
手書きで書いてしまうということは、
プログラミングに関する知識はあったということなんですかね。
やっぱり最初からCocoaに飛び込むのは無謀だったか、、w
67 Name: 名称未設定 [sage] Date: 2008/02/01(金) 14:32:40 ID: 5TPP70fY0 Be:
いやー最初の絶望感は自分も味わったからわかるw
Cocoaの初心者向けサイトって見てもあんまり噛み砕いた説明してないよね。

プログラミング自体完全に初めてなんだったらいきなりGUI付きのアプリより
Terminalで動かすCUI専用のツールをCで書いてみるとかから始めてみたらどうだろう。
68 Name: 名称未設定 [sage] Date: 2008/02/01(金) 14:39:06 ID: nIkc8tTq0 Be:
>>65
ありすぎて困る
69 Name: 名称未設定 [sage] Date: 2008/02/01(金) 15:17:37 ID: C/yNXutt0 Be:
アップルのセミナー、全部取れた!
有給使って行ってくるよ!
70 Name: 名称未設定 [sage] Date: 2008/02/01(金) 15:36:22 ID: pOmNc0iY0 Be:
Leopardになってから何かXcode壮絶に変化した気がする。
Tigerの時はOSをさかのぼっても10.3止まりだったのが
OSX10.1用にコンパイルできたり、カスタマイズがやりやすくなってる印象。

Interface Builderあたりも結構、仕様が変わったのねぇ
71 Name: 名称未設定 [] Date: 2008/02/01(金) 19:15:50 ID: 2iNcArMz0 Be:
楽しいcocoaプログラミングを読みながら基本的な用語を理解しようとしてる
んだが、俺の理解&例えが正しいかちょっとおまいら見てみてください

[メソッド(インスタンスメソッド)]を使って[インスタンス変数]を[クラス]という設計図の
中に書く(定義する)。これをインスタンス化してできるものが[インスタンス]。



[英語]を使って[文章]を[原稿]の中に書く。
これをプリントアウトしてできるものが[本]
72 Name: 名称未設定 [sage] Date: 2008/02/01(金) 19:18:33 ID: 9gQ7inmn0 Be:
>>62
普通のNSWindowをフルスクリーンぽく表示するならこんな感じでたぶん出来ます
NSWindowのサブクラスで
- (void)setFullScreen:(BOOL)b
{
fullscreen = b;
if (!fullscreen) {
[self setShowsResizeIndicator:YES];
[NSMenu setMenuBarVisible:YES];
[self setFrame:NSMakeRect(0,0,500,500) display:YES];
} else {
[NSMenu setMenuBarVisible:NO];
[self setFrame:NSZeroRect display:YES];
[self setShowsResizeIndicator:NO];
}
}
-(NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)aScreen
{
if (fullscreen) {
NSRect result = [[NSScreen mainScreen] frame];
if (![NSMenu menuBarVisible]) result.size.height+= 22;
return result;
} else {
return [super constrainFrameRect:frameRect toScreen:aScreen];
}
}
あとはsetHidesOnDeactivate:とかsetLevel:をお好みに応じて。
73 Name: 名称未設定 [sage] Date: 2008/02/01(金) 19:50:51 ID: /sxPQuGn0 Be:
>>71
さっぱり分からん例えだ…オブジェクト指向言語の入門書を読んだ方が良いかも。

クラス:工場ラインと設計図
インスタンス:カスタマイズド製品
クラスメソッド:インスタンス化(製品製造)したり廃棄とか…
インスタンス変数:カスタマイズ項目
インスタンスメソッド:入出力系(カスタマイズ状態によって応答を変えることができる)

みたいな感じかな?補完修正よろ
74 Name: 名称未設定 [] Date: 2008/02/01(金) 20:05:15 ID: xnZLBzPn0 Be:
>>73

私の理解はこうです。

クラス:たいやきの型
インスタンス:たいやき
クラスメソッド:たいやきの型の火加減調整
インスタンス変数:たいやきのあんこの量
インスタンスメソッド:たいやきのあんこの量調整
75 Name: 名称未設定 [sage] Date: 2008/02/01(金) 20:24:54 ID: 5TPP70fY0 Be:
>>74
たいやきをたこ焼きに変えただけで俺のイメージと全く同じで笑った
76 Name: 名称未設定 [sage] Date: 2008/02/01(金) 20:32:49 ID: TraSyxiD0 Be:
クラス:ロボットの設計図
インスタンス:完成したロボット
クラスメソッド:ロボットの生産命令
インスタンス変数:ロボット各部の部品
インスタンスメソッド:ロボットの動作の定義(前ボタンを押したら前進、下ボタンでしゃがむ、とか)
77 Name: 名称未設定 [sage] Date: 2008/02/01(金) 20:34:30 ID: B7VDsqsz0 Be:
OOのたとえ話なんて何のたしにもならん。
言葉遊びしてる暇があったらリファレンス読みこなせ。
78 Name: 名称未設定 [sage] Date: 2008/02/01(金) 20:47:44 ID: 5TPP70fY0 Be:
言葉遊びとは違うでしょ
触り始めに知識ばっか詰め込んでも
その知識の使い方がわからないんじゃ意味がない
もちろん量を読むのは大事だけれど
79 Name: 名称未設定 [sage] Date: 2008/02/01(金) 20:51:30 ID: l9eCdrlK0 Be:
複数のロボットが共同してひとつの仕事をこなす。
80 Name: 名称未設定 [sage] Date: 2008/02/01(金) 20:54:13 ID: UH/1hOjR0 Be:
比喩で解った気になってるとな、後でなぁ。
81 Name: 名称未設定 [sage] Date: 2008/02/01(金) 20:56:09 ID: UH/1hOjR0 Be:
>>78
>>73, >>76
言葉遊びしてるが。
82 Name: 名称未設定 [sage] Date: 2008/02/01(金) 21:18:09 ID: x3DHvtPP0 Be:
メモリがリークするってのは、食いきれないたい焼きがどんどん増えていって、
地球上がたい焼きで溢れかえる、と言う認識でよろしかったでしょうか
83 Name: 名称未設定 [sage] Date: 2008/02/01(金) 21:20:23 ID: nIkc8tTq0 Be:
だめだろ
84 Name: 名称未設定 [sage] Date: 2008/02/01(金) 21:27:30 ID: BFHK/vDAO Be:
初めは解った「気」になるのも大事だと思うがね
85 Name: 名称未設定 [sage] Date: 2008/02/01(金) 21:38:49 ID: 2N2icJuR0 Be:
最初は自分の納得出来る形で覚えるのがいいよ。
進んで行くうちに修正すればいい。

私の場合、ロールプレイングゲームのモンスターをイメージしてたし(笑

メンバ変数:名前や体力とかマジックポイント
IBアクション:攻撃を受けたとか
メソッド:体力を減らすとか0になったら死亡フラグが立つとか

モンスターが10匹現れたら上記のインスタンスを10個立てて
それぞれのインスタンスに攻撃すれば、それぞれで勝手に処理してくれる。

みたいな。
86 Name: 名称未設定 [sage] Date: 2008/02/01(金) 21:47:23 ID: lRnFBVym0 Be:
>>82
バイバイン乙
そして、仕事でVBを使うことになった俺orz
87 Name: 名称未設定 [] Date: 2008/02/01(金) 23:06:17 ID: BWMB+ueI0 Be:
皆さんマジレスどうもです
たぶん自分の理解は外れてないけどものすごく浅いってことだろうと
解釈しました。分かった気にはなれませんでしたが、もうちょっと読みこなして
リファレンスももっと見ていこうと思います
88 Name: 71 [] Date: 2008/02/01(金) 23:06:54 ID: BWMB+ueI0 Be:
なぜかIDが変わりましたが、>>71でした
89 Name: 名称未設定 [sage] Date: 2008/02/02(土) 00:01:21 ID: 5pl+Uu5I0 Be:
プログラムは実践あるのみです
90 Name: 名称未設定 [sage] Date: 2008/02/02(土) 00:38:04 ID: NqyLEgiZ0 Be:
>>63
>>72
できました、ありがとうございます。
Leopardは直接フルスクリーンにできるんですね。
まだ、10.4なんです。

>>72のやり方だとウィンドウのステータスバーが残るんですね。
仕方ないのでウィンドウ内のビューサイズをウィンドウに合わせて回避しました。
91 Name: 名称未設定 [sage] Date: 2008/02/02(土) 00:57:40 ID: RXlTV5ga0 Be:
NSWindowにステータスバーなんてあったっけ?
まぁいずれにせよconstrainFrameRect:で返してるNSRectがウィンドウのrectになるってだけなので、
result.size.height+=(ステータスバーの高さ);
result.origin.y-=(ステータスバーの高さ);
とかしたらうまくいくんじゃないでしょうか
92 Name: 名称未設定 [sage] Date: 2008/02/02(土) 05:01:00 ID: J7XNENPv0 Be:
>>80
大間違いな解釈していると後で大変だよな。
あるケースで奈落の底に・・・
93 Name: 名称未設定 [sage] Date: 2008/02/02(土) 14:45:30 ID: Rc4l3OTe0 Be:
>>91
勘違いしてました。
ステータスバーと言うのはないですね。
単にウインドウ内部のビューが小さかっただけです。
94 Name: 名称未設定 [sage] Date: 2008/02/03(日) 08:08:17 ID: X+xH8J460 Be:
テーブルビューで、ヘッダーのところをクリックするとデータが
並べ替えられますが、クリックしても何も起きないようにするには
どうすればいいでしょうか。
95 Name: 名称未設定 [sage] Date: 2008/02/03(日) 09:23:00 ID: USR4Jfgk0 Be:
>>67
レスサンクスdです。ID:JVdTTK6m0 です。
CUI版ですかぁ。あまり親しみがないんですよね。
cui版mplayerを時々使ってるくらいかな。
最初からGUI物に飛び込むのは無謀なんですかね。

今はC言語のサイトを見つけて読んでるところです。

>>74
わかりやすいですね。
ほかの方が「わかった気になってるだけ」とおっしゃっていましたが、
個人的に、最初にそこでたくさん出てくる横文字でつまずき、挫折するよりかは、
少しでもわかりやすい例えで理解して前に進んだ方がいいと思っています。
"なんとなく"でも把握していれば、やっていくうちに、もっとはっきりと
どういったものなのか分かってくるかなと。初心者の自分がいうのもなんですがw
プログラミングではなく、自分が習ってきたほかの物のことを考えるとそうなんで。

>>94
自分は、始めて1週間ちょっとくらいしか経っていないので
確かではないのですが、
TableViewを選択した状態で、インスペクターのAttributesを表示し、
「Allow: 」って所の「Column Ordering」っていうのからチェックを外したらどうなるでしょうか?
実際に使ったことがないのですが、名前からして、チェックがついてると「並び替えを許可」っぽい感じなんですが。
96 Name: 名称未設定 [sage] Date: 2008/02/03(日) 09:28:10 ID: USR4Jfgk0 Be:
>>94
>>95に書いたのは、
Interface Builderでの操作です。
97 Name: 94 [sage] Date: 2008/02/03(日) 09:40:07 ID: X+xH8J460 Be:
>>95, 96
私は IB3 を使ってるんですが、NSTableView の Attributes -
Columns の "Reordering" のことでしょうか。

これは column の位置を変えられるようにするかどうか
(1列目と2列目を入れ替える、など)のようです。
98 Name: 名称未設定 [sage] Date: 2008/02/03(日) 10:18:00 ID: USR4Jfgk0 Be:
>>97
名前は違いますが、Column Oderingと同じ機能っぽいですね。

確かにそうかもしれませんね、、すみませんm(_)m

あとは、TableViewを一つのコラムを選択した状態で
Attributesを選択。その時に表示される、Sort Key、Sort Selector、Sort Order
っていうのは何か関係あるんですかね。
Sortというのは整頓という意味ですし、もしかしたら、、
と思ったので一応書いておきます。
99 Name: 名称未設定 [sage] Date: 2008/02/03(日) 10:57:49 ID: 3kiF/6/w0 Be:
自動でソートが効くってことはアレイコントローラを使っているんだと思うけど、
[arrayController setSortDescriptor:nil];
とかしてみればいいんじゃなかろうか
100 Name: 94 [sage] Date: 2008/02/03(日) 12:03:55 ID: X+xH8J460 Be:
>>99
おっしゃる通り、NSArrayController(と Core Data + Cocoa Bindings)
を使っています。

で、sortDescriptor を NSArrayController に設定して使っているのですが、
テーブルのヘッダをクリックすると勝手に並べ替えられてしまって、
設定した sortDescriptorとは違う順序になってしまい困っています。
101 Name: 名称未設定 [sage] Date: 2008/02/03(日) 12:16:24 ID: 87lsToCL0 Be:
クリックしたときに何も起きないようにしたいんじゃなくて、
自分で設定したsort descriptor を動作させたい、てこと?
102 Name: 94 [sage] Date: 2008/02/03(日) 12:26:16 ID: X+xH8J460 Be:
>>101
sortDescriptor は立ち上げ時に一度設定するだけなのですが、
それを変更できないようにしたい、ということです。
103 Name: 101 [sage] Date: 2008/02/03(日) 12:38:05 ID: oWNxC6th0 Be:
それだったら アレイコントローラにsort descriptor は設定しておかないで、立ち上げ時に
手動でアレイコントローラのコンテントをsortUsingDescriptorsをつかってソートすれば
いいかな

あるいは、NSTableHeaderView のmouseDown: を横取りしてマウスクリックを受け付けなくするとか

もっとスマートな方法があるかもしれないけど
104 Name: 名称未設定 [sage] Date: 2008/02/03(日) 12:39:48 ID: UJklTjPo0 Be:
>>102
[tableView unbind@"sortDescriptors"]
105 Name: 101 [sage] Date: 2008/02/03(日) 12:44:59 ID: oWNxC6th0 Be:
昇順←→降順の切替をユーザにさせたくなくて、常に昇順に保持しておきたい場合、降順ソートできないように
書き換えた sort descriptor サブクラス…
- (id)reversedSortDescriptor
が単に自分のコピーを返す…
を作って置き換えるとか??
106 Name: 名称未設定 [sage] Date: 2008/02/03(日) 12:50:54 ID: 9QAhjThz0 Be:
カラムのソートデスクリプタはIBで設定せず、
コードでプログラム起動時に一回だけ動くように記述する。

あと、ヘッダーカラムをクリックした時の記述があったはず。
107 Name: 94 [sage] Date: 2008/02/03(日) 14:08:07 ID: X+xH8J460 Be:
たくさんレスいただきありがとうございます。

>>102, 106
sortDescriptor そのものはバインディングはせず、コード内で立ち上げ時に
一度 arrayController にセットしています。

テーブルに表示される Core Data のデータの方だけ、バインディングしています。

>>103, 105
データそのものは追加されていくものなので、できれば sortDescriptor だけで
済ませたいのですが‥

arrayController の content を手動でセットする場合、立ち上げ時はいつ
Core Data のデータのフェッチが終了するのかがよくわかりません。

データの順番は、表示されているデータそのものの昇順、降順ではなく、
表示には使っていない attribute をキーにしているのですが、ヘッダーセルを
クリックすると、表示されているデータを昇順、降順に並べ替えてしまう
ようです。

やはり mouseDown の上書きしかないでしょうか‥
108 Name: 名称未設定 [sage] Date: 2008/02/03(日) 14:46:43 ID: UJklTjPo0 Be:
>>107
104です。

tableColumnのvalueにbindすると自動的にtableViewのcontent,selectionIndexes,
sortDescriptorsにarrayControllerのarrangedObjects, selecionIndexes,
sortDescriptorsとbindされます。

だからcolumn headerをクリックしてソートするのを禁止するにはsortDescriptors
のbindをストップすればよいのです。

Cocoa Bindings Examples and Hints のCocoa Bindings Examples and Hints
のようにIBで設定しても良いです。

core dataの順序を記録する用途で当方でも使っていますので、同じ状況だと思いますが?


109 Name: 94=107 [sage] Date: 2008/02/03(日) 14:56:26 ID: X+xH8J460 Be:
>>104
ありがとうございます、できました!

>>104 の unbnd を arrayController unbind: と勘違いし、
うまくいかないと思ってしまいました。すみません。

さらに欲を言うと、ヘッダをクリックしたときヘッダの色が
青になりますが、この色も変化させないようにすることは
できるでしょうか?
110 Name: 名称未設定 [sage] Date: 2008/02/03(日) 15:23:42 ID: UJklTjPo0 Be:
>>109
104です
出先のWindows機からのアクセスなので、確認できませんが、
headerをクリックしても何もおこらないと思います。

念のため、IBで設定しても同じか実験してみてください。
Cocoa Bindings Examples and Hints
http://homepage.mac.com/mmalc/CocoaExamples/controllers.html
Disabling sorting in a tableview

なれないWindows機からなのでtypoが多くてすいません
111 Name: 名称未設定 [sage] Date: 2008/02/03(日) 16:09:54 ID: u/Oq4gE50 Be:
QuickTimeムービーのプロパティでサウンドトラックの低音/高音の音量を個別に設定できますが
あれをQTMovieに対して設定する事は可能なんでしょうか?
112 Name: 名称未設定 [sage] Date: 2008/02/03(日) 16:49:05 ID: bYJaQCBN0 Be:
アトリビュートなんたらを洗えばあるんでないかい?
ADCのクラスリファレンスに一覧があるよ。
113 Name: 名称未設定 [sage] Date: 2008/02/03(日) 23:50:01 ID: xhvNdcsT0 Be:
あるビューにサブクラスを2つ以上実装したい場合はどうすればよろしいのでしょうか?
例えば、NSImageViewのパーツを置いてカスタムクラスにMyImageViewを設定するのですが、
もう一つMyImageView2もカスタムクラスにしたいのです。

よろしくおねがいします。
114 Name: 名称未設定 [sage] Date: 2008/02/03(日) 23:58:11 ID: DfOP/trw0 Be:
ええっと、オブジェクトというのは一つのクラスにしかなりえないから、
ひとつの ImageView をふたつのクラスにするのは無理だよ

単に
@class MyImageView : NSImageView
としてから、
@class MyImageView2 : MyImageView
として、カスタムクラスを MyImageView2 にすれば?
そうすると MyImageView2 からは MyImageView のメソッドも
NSImageView のメソッドも使えるよ。

115 Name: 名称未設定 [sage] Date: 2008/02/04(月) 00:11:19 ID: LLRzPB740 Be:
委譲させたら?
116 Name: 名称未設定 [sage] Date: 2008/02/04(月) 03:37:51 ID: Sa7MZiJY0 Be:
質問なんですが、ボタンを押した時に特定のコントロールにキーのフォーカスを移動させたいんですが、どうやればいいんですか?
NSWindowにselectKeyViewFollowingViewみたいなのはあるんですが、渡すView自体を選択してくれるメソッドが見つかりません。
117 Name: 名称未設定 [sage] Date: 2008/02/04(月) 03:47:53 ID: JOVg4Jvf0 Be:
NSWindow の makeFirstResponder:
118 Name: 名称未設定 [sage] Date: 2008/02/04(月) 14:58:53 ID: Sa7MZiJY0 Be:
>>117
ありがとうございます。できました!
119 Name: 名称未設定 [sage] Date: 2008/02/05(火) 09:13:12 ID: b+MI5Uyi0 Be:
数年ぶりにCocoaの世界に帰ってきた者です。当方の環境は
Mac OS X Tiger v10.4.11
Xcode 2.3

確かJaguarの時代だったと思いますが、私は次のコードを書きました。
ボタンを押すと、ユーザーディレクトリの中にあるTest.jpgのシンボリックリンクをTestAliasという名前で作るプログラムです。
確かこのときは、オリジナルのTest.jpgを移動したり、名前を変えたりすると、リンクが切れて、もやはTestAliasをダブルクリックしても、オリジナルが見つからず、開かれることはなくなったと記憶しています。
ところが、今日、久しぶりにこのプログラムを実行してみましたが、オリジナルを移動させても、名前を変えても、リンクが切れず、TestAliasをダブルクリックすることで、オリジナルを開くことができます。
また、Test.jpgをゴミ箱に入れて、TestAliasをダブルクリックした場合は、オリジナルがゴミ箱の中にあるので、開けないというメッセージが表示されるようになっていました。
これはシンボリックリンクがエイリアスと全く同じ仕様になったと理解していいのでしょうか。
それとも、シンボリックリンクの仕様は変わっていないけど、createSymbolicLinkAtPath: pathContent: メソッドが、シンボリックリンクではなく、エイリアスを生成するようになったのでしょうか。
また、このような変化があったのはMac OS Xのどのバージョンからなのでしょうか。

#import "MyObject.h"

@implementation MyObject

- (IBAction)myAction:(id)sender
{
NSString *str = @"~/";
NSFileManager *myFile = [ NSFileManager defaultManager];
[myFile changeCurrentDirectoryPath:[str stringByExpandingTildeInPath]];
if ([myFile createSymbolicLinkAtPath:@"TestAlias" pathContent:@"Test.jpg"]){
NSLog(@"YES");
}else{
NSLog(@"NO");
}
}
@end
120 Name: 119 [sage] Date: 2008/02/05(火) 09:57:32 ID: b+MI5Uyi0 Be:
試しにターミナルで次のコマンドを実行しました。

ln -s Test.jpg TestAlias

これはシンボリックリンクを作るはずですが、やはり、出来上がったTestAliasはエイリアスのように振る舞います。
Test.jpgを移動しても、名前を変えても追跡してくれるみたいです。
ということは、私の環境ではもはやシンボリックリンクという概念は存在せず、エイリアスだけに
なってしまったのでしょうか。
121 Name: 45 [sage] Date: 2008/02/05(火) 10:33:27 ID: JH9guR+l0 Be:
なぜマニュアルを読まないのかさっぱり分からないが
HFS+ だと Alias も Symlink もサポートされる.
UFS だと Symlink のみ.
122 Name: 名称未設定 [sage] Date: 2008/02/05(火) 11:39:40 ID: JsyJRBki0 Be:
cocoaアプリ側からそのシステムがcore image使用可能かどうかって、
どうやって知るのかな・・・。
123 Name: 名称未設定 [sage] Date: 2008/02/05(火) 12:32:13 ID: 9FDDjTmb0 Be:
>>120
てもとで ln -s やってみたけど、
うちの 10.4.11, 10.5.1 ではそんなことにならないよ。
alias と symlink にはまだ区別があるみたいだけど。
124 Name: 名称未設定 [sage] Date: 2008/02/05(火) 12:33:38 ID: cij0dARY0 Be:
/tmp ディレクトリは起動時に空にされますが、ホームフォルダ以下で
ログイン時(または起動時)に自動的に空にされるディレクトリってないんでしょうか?
125 Name: 名称未設定 [sage] Date: 2008/02/05(火) 13:17:40 ID: HDjiUsh/0 Be:
>>124
CarbonのFindFolder()とか、CocoaのNSTemporaryDirectoryとかで
userドメインのTemporaryフォルダは取得できる。
これで取ったフォルダの中身は再起動時に空になるけど、
ゴミ箱の中のRecoverd Filesに化けるな。
126 Name: 119 [sage] Date: 2008/02/05(火) 15:03:13 ID: b+MI5Uyi0 Be:
>>121

マニュアルってなんですか。
Xcodeヘルプから見れるReference Libraryのこと?
127 Name: 名称未設定 [sage] Date: 2008/02/05(火) 15:38:53 ID: Cj6Km0Em0 Be:
>>126
Finderが勝手にシンボリックにエイリアス情報を
追加書きしているように見えるけど。
ターミナルからopen TestAliasとやれば追跡できないし。
128 Name: 名称未設定 [sage] Date: 2008/02/05(火) 21:47:04 ID: xbftVDuZ0 Be:
書類をアプリにドラッグして開けるようにするには
ターゲット>プロパティ>書類のタイプ
で指定するわけですが、
フォルダだけを開きたい場合はどうすれば良いんでしょうか?
拡張子に*を指定するとフォルダも含め何でも開けてしまうんですが、
フォルダ「だけ」、の場合は何を指定するんでしょう?
129 Name: 名称未設定 [sage] Date: 2008/02/05(火) 21:59:10 ID: rdVERx6H0 Be:
質問です。
カーソルのイメージをQuickDrawの関数を使って取得してるんですが、
虹色カーソル(spinning wait cursor)が表示されているのに標準の矢印カーソルのイメージを
取得してしまいます。
虹色カーソルが表示中って分かるイベントフラグみたいのってあるのでしょうか。

欲を言えば、虹色カーソルが取得出来ればベストなんですけど(この場合はアニメーションなくて1フレーム目の画像のみでも・・)
130 Name: 名称未設定 [sage] Date: 2008/02/05(火) 22:03:41 ID: BmVs9NNX0 Be:
>>128
OSTypeを'fold'にする。拡張子とかは空欄でいいんじゃないか。
UTIも空で動くけど、"public.folder"を指定するのが正しいと思う。
131 Name: 名称未設定 [sage] Date: 2008/02/05(火) 22:12:52 ID: g5I0ovRl0 Be:
Core DataはIBを使わないで使うと、結構良いフレームワークだという事に気づいた
その後IBを使ったCore Dataは快適になった

つうことでみなさん、コードでゴリゴリ書いた方が理解が早いかも
132 Name: 名称未設定 [sage] Date: 2008/02/05(火) 22:14:17 ID: BmVs9NNX0 Be:
ついでに>>129
CGSGetGlobalCursorData()なら取れるかもしれないけど、
プライベートフレームワークだから無保証。
関数名でぐぐるとちょっと情報みつかるよ。
133 Name: 124 [sage] Date: 2008/02/05(火) 22:32:09 ID: iWlRhzBT0 Be:
>>125
ありがとうございました。
試した結果を書くと、私の環境(PPC 10.4.11)では以下でした。

・NSTemporaryDirectory →
/private/var/tmp/folders.501/TemporaryItems

・FSFindFolder の kUserDomain
kTemporaryFolderType → ~/Library/Caches/TemporaryItems
kUserSpecificTmpFolderType → ~/Library/Caches
kTemporaryItemsInCacheDataFolderType → ~/Library/Caches/TemporaryItems
kMagicTemporaryItemsFolderType → fnfErr
kTemporaryItemsInUserDomainFolderType → fnfErr
kCachedDataFolderType → ~/Library/Caches
134 Name: 名称未設定 [sage] Date: 2008/02/05(火) 22:41:17 ID: rdVERx6H0 Be:
>>132
情報ありがとうございます。
CGSGetGlobalCursorDataの方が一度にたくさん情報取れるのでいいですね。
でも、虹色カーソルのとき標準矢印カーソルとなってしまいます・・・。
やっぱり何かイベントが発生していると思うんだけどなぁ。
CarbonEventのコントロール系はイベント返ってこないし、打つ手なしかな??
135 Name: 名称未設定 [sage] Date: 2008/02/05(火) 22:56:06 ID: xbftVDuZ0 Be:
>>130
ありがとうございます
あとで試してみます
136 Name: 名称未設定 [sage] Date: 2008/02/07(木) 18:51:37 ID: i1sXHLe20 Be:
NSSlider *slideVolumeと定義して

float volume = [slideVolume floatValue];
NSLog(@"volume=%f", slideVolume);

とやったらvolumeの値がめちゃくちゃだった。

30分ハマって、slideVolume->slideVolに変更したら直った。
こんなのあり??

10.4.11 Xcode2.5
137 Name: 名称未設定 [sage] Date: 2008/02/07(木) 19:01:56 ID: P0z8W2nh0 Be:
>>136
何処から突っ込めばいいの?
138 Name: 名称未設定 [sage] Date: 2008/02/07(木) 19:08:50 ID: //LqtxVA0 Be:
>>136
NSLog(@"volume=%f", slideVolume);
にしてたらlogに吐かれるのはvolumeの値なんかじゃないから
こんなのあり?っていうかそうにしかならない
139 Name: 名称未設定 [sage] Date: 2008/02/07(木) 19:27:02 ID: Dc7nZeu50 Be:
>>136
slideVolでなぜ直るのかかなり疑問
140 Name: 名称未設定 [sage] Date: 2008/02/07(木) 21:18:51 ID: ipiWvlAk0 Be:
>>137
すんません。
NSLogの引数はslideVolumeじゃなくてvolumeでした。

しかし本当に不思議なんですよ。
クリーンとかかけたり再起動したりしてもおかしいまま。
141 Name: 名称未設定 [sage] Date: 2008/02/07(木) 23:27:30 ID: H1Xb5CsL0 Be:
>>140
NSSliderオブジェクトを生成もしくは取得してない、なんてオチではないだろうな?
142 Name: 45 [sage] Date: 2008/02/07(木) 23:50:02 ID: vbFRyn0Y0 Be:
>>141
あーありそう.ありそう.
ポインタ宣言したら実体まで確保されてるとか思うんだよね.
初心者って
143 Name: 名称未設定 [sage] Date: 2008/02/08(金) 00:11:35 ID: Bz1m/8mJ0 Be:
float volume = [slideVolume floatValue];
の返り値は正しかったのか?

>>141
slideVolumeがnilだったらvolumeは常に0になると思うけど
144 Name: 名称未設定 [sage] Date: 2008/02/08(金) 01:16:59 ID: iietHHAy0 Be:
>>143
>slideVolumeがnilだったらvolumeは常に0になると思うけど
Mac OS X 10.5 以降限定だよ。
http://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_2_section_3.html

それ以前のは
PPCなら返値の型がfloat, double, struct, long long, long double なら不定。
intelも同様だったきがするが良く覚えてない。
なんかドキュメントが原文と日本語版でグチャグチャだったのを覚えてる。

# 以前のドキュメント参照って書いておきながら以前のドキュメントが見つからないのは気のせい。
145 Name: 名称未設定 [sage] Date: 2008/02/08(金) 01:19:12 ID: XxzPVdKP0 Be:

Intel Mac では、message to nil で float その他が返ると 0 だけど、
ppc Mac では未定義。

http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary_tips/chapter_5_section_22.html

参照。

それは別として、 slideVol というメンバがあるのが理解できない
146 Name: 名称未設定 [sage] Date: 2008/02/08(金) 01:30:40 ID: iietHHAy0 Be:
おお、これだ、これ。
IntelだとOKでPPCだとNGだったか。
まあ、俺は怖くて使わ(え)ないけど。
147 Name: 名称未設定 [sage] Date: 2008/02/08(金) 04:22:13 ID: tCo++TR90 Be:
>>143
NSSlider *slideVolume = nil;
としたとは書いてないから、ポインタ値がめちゃくちゃな値になってる可能性もあるんじゃない?
でも、それならメッセージ送ったときに落ちるか。該当部分のコード全部晒してくれないとわからんな。
148 Name: 名称未設定 [sage] Date: 2008/02/08(金) 07:42:39 ID: Ra3ZPNDQ0 Be:
親クラスで volume インスタンス変数が定義されているとか。
149 Name: 名称未設定 [sage] Date: 2008/02/08(金) 08:00:34 ID: dfpba1su0 Be:
ローカル変数のスコープが優先されるだろ。
150 Name: 名称未設定 [sage] Date: 2008/02/08(金) 14:18:53 ID: mOfTgsF60 Be:
オカルト方面の議論に似ておる
151 Name: 名称未設定 [sage] Date: 2008/02/09(土) 16:16:50 ID: m0UtGMte0 Be:
すみません、教えて下さい。
QTMovieView内のQTMovieをフリップ、回転させたいのですが
どうすればいいのかわかりません。
サブクラスのdrawRectでNSAffineTransformを使うような気がするのですが、
具体的にどう書けばいいのかさっぱりです。

よろしくおねがいします。
152 Name: 名称未設定 [sage] Date: 2008/02/09(土) 16:44:37 ID: XwOffBYp0 Be:
View自体を回せばいいんじゃないの?
153 Name: 名称未設定 [] Date: 2008/02/09(土) 16:46:43 ID: S/WQlHWE0 Be:
QuickTimeにNSAffineTransformってきくのかな?
ここは、CoreAnimationのQTMovieLayerを使うのが楽だと思います。
154 Name: 名称未設定 [sage] Date: 2008/02/09(土) 16:52:15 ID: SPsXuN9d0 Be:
QTMovie自体のMatrixを書き換えるってのはなしか。
155 Name: 名称未設定 [sage] Date: 2008/02/09(土) 17:20:57 ID: 5COFL2820 Be:
View 自体をaffin transform で回すことについて…不確かな記憶だけど、Tiger では拡大縮小は効くが、回転はできない
Leopard では回転も拡大縮小も効かない
と思った。
156 Name: 名称未設定 [sage] Date: 2008/02/09(土) 18:14:54 ID: XwOffBYp0 Be:
ボタンとか回転できた記憶があるけど。
157 Name: 名称未設定 [sage] Date: 2008/02/09(土) 22:58:18 ID: m0UtGMte0 Be:
みなさん、ご意見ありがとうございます。
いろいろ漁ってみたのですが、QTMovieView(NSView)自体の回転は敷居が高そうですね。
拡大、縮小はsizeの変更でうまくいったのですが。

>>152
View自体を回す方法もいろいろ試しているのですが、枠が回転したりなかなかうまくいきません。
>>153
まだ10.4なんです。CoreAnimationならここら辺が簡単なんですよねえ。
>>154
QTMovieのMatrixを書き換えるという方法があるのでしょうか?
158 Name: 名称未設定 [sage] Date: 2008/02/09(土) 22:59:33 ID: JLKpZqHO0 Be:
>>157
QuartzComposerを使うのはダメ?
159 Name: 名称未設定 [sage] Date: 2008/02/09(土) 23:12:54 ID: XwOffBYp0 Be:
NSBoxに入れてQTMovieViewを回転させたらいいんじゃないかな。
160 Name: 名称未設定 [sage] Date: 2008/02/09(土) 23:43:51 ID: J/8Qd+ts0 Be:
OpenGL textureにして回すとか
http://developer.apple.com/samplecode/QTQuartzPlayer/index.html

ぐりぐり回るよ;-)
161 Name: 名称未設定 [sage] Date: 2008/02/10(日) 18:07:31 ID: uw0MifcW0 Be:
Objective-C 2.0 の property って、コードの量が減る以外に
何かメリットありますか?(例えばパフォーマンスとか)

既存のコードを property で書き換えるか悩み中‥
162 Name: 名称未設定 [sage] Date: 2008/02/10(日) 20:09:37 ID: MQiiMPM60 Be:
たしかパフォーマンスは落ちるかと
163 Name: 名称未設定 [sage] Date: 2008/02/10(日) 22:44:37 ID: Fr8iJ/eI0 Be:
コンパイラでインライン化とかしてくれないの?
164 Name: 名称未設定 [sage] Date: 2008/02/10(日) 23:28:22 ID: mNbPLIG00 Be:
>>162
そうなの?アクセサメソッドのコードを生成してくれるんじゃ
ないの。速度は変わらないと思ってたけど。
165 Name: 名称未設定 [sage] Date: 2008/02/11(月) 00:04:13 ID: rw6fzeGL0 Be:
いずれにせよ、既存のアクセッサをわざわざ書き換える必要は無いという事でFA?
166 Name: 名称未設定 [] Date: 2008/02/11(月) 00:14:36 ID: Mw0lyuru0 Be:
@property id value;
とか書かなくても、obj.valueなどのようなプロパティー構文は使えるよ。
ただ、Xcodeが入力を補完してくれないだけで。

167 Name: 名称未設定 [sage] Date: 2008/02/11(月) 00:32:16 ID: WABBHTZZ0 Be:
でも、Obj-C 1.xのころは、アクセッサはスレッドセーフでも同値
チェックありでもなかったじゃない?
Obj-C 2.0はGC導入に伴い、いろいろ余計なことするようになった
分遅くなったと思うんだけど。
Obj-C 2で速度出すなら、アクセッサはきちんと書くか、少なくとも
属性書き足さないといけないのでは?
168 Name: 名称未設定 [sage] Date: 2008/02/11(月) 02:32:07 ID: DHyabWpb0 Be:
誰かきちんと書いて速度比較してないのかな。
169 Name: 名称未設定 [sage] Date: 2008/02/11(月) 09:51:52 ID: qHxPQa8p0 Be:
実際のところアプリの内容によって違う
俺のメインのプロジェクトのは書き換えたら遅くなったから使うのやめたよ
170 Name: 名称未設定 [sage] Date: 2008/02/11(月) 09:52:35 ID: qHxPQa8p0 Be:
でも特殊なことしてない限り大丈夫だと思います
171 Name: 名称未設定 [sage] Date: 2008/02/11(月) 13:01:17 ID: bv2jVL8f0 Be:
UI の NSTextField に NSNumberFormatter を設定して、
AppController 内の NSNumber のメンバにバインディングさせているのですが、
その NSTextField に一旦数字を入力し、その後それを削除してリターンを押すと、
どこからともなく「フォーマットエラー(変更内容を破棄)(OK)」というパネルが
現れ、NSTextField をブランクのままにすることが拒絶されます。

このとき、このパネルを表示させずに、NSTextField はブランクのまま、単純に
NSNumber に nil を設定するには、どうすれば良いでしょうか。
172 Name: 名称未設定 [sage] Date: 2008/02/11(月) 15:34:22 ID: nf9aGNMi0 Be:
ヌル時の動作がバインディングのインスペクターで設定出来たような。
か、やはり空白時はヌルで更新するコードをかますか。
173 Name: 名称未設定 [sage] Date: 2008/02/12(火) 04:19:53 ID: IXJXTrlG0 Be:
TigerでSafariStandの「メタルを除去」みたいなアピアランスって
どうすればできるんでしょうか
174 Name: 名称未設定 [sage] Date: 2008/02/12(火) 04:29:29 ID: NDM2BdXw0 Be:
>>173
setBackgroundColor:
175 Name: 名称未設定 [sage] Date: 2008/02/12(火) 16:17:32 ID: YacaCMuF0 Be:
UIKitにNSBrowserみたいな階層表示できるviewはつきますかね?
176 Name: 名称未設定 [sage] Date: 2008/02/12(火) 16:30:21 ID: YacaCMuF0 Be:
誤爆スマソ
177 Name: 名称未設定 [sage] Date: 2008/02/12(火) 18:52:09 ID: 41YUEpKu0 Be:
秒をhh:mm:ssに変換するのって自力で書くしかないですかね。
178 Name: 名称未設定 [sage] Date: 2008/02/12(火) 22:04:34 ID: n90Q8BNy0 Be:
[NSString stringWithFormat:@"%02d:%02d:%02d",(s / 3600),((s / 60) % 60),(s % 60)];
s は int として、こんな感じか?
179 Name: 名称未設定 [sage] Date: 2008/02/12(火) 22:20:36 ID: OwQ15KHvO Be:
それを自力で書くと言うんでは。
Formatterとか使いたいんじゃないの、何となくだけど。
180 Name: 名称未設定 [] Date: 2008/02/12(火) 23:25:27 ID: nMEwufKb0 Be:
>>161
Objective-C2.0のプロパティーのパフォーマンスについて調べてみました。

まず、
obj,value = @"hello";
a = obj.value;
は、単純に
[obj setValue:@"hello"];
a = [obj value];
に変換されるだけで、パフォーマンス的な問題は発生しません。

次に、@synthesizeが生成するアクセッサのコードは、@propertyの属性が、
assignのものはパフォーマンス的に全く影響のないコードが生成されます。ただし、GC前提ということになりますが。
copyとretainは、基本的にスレッドセーフなコードが生成されます。つまり、内部でspin_lockの処理が行われます。それ以外は、特にパフォーマンスに影響する部分はなさそうです。


181 Name: 名称未設定 [sage] Date: 2008/02/12(火) 23:34:01 ID: SpY+Nhzt0 Be:
>>177
[NSDate descriptionWithCalendarFormat~] なんかそうじゃないかな
ちらっとリファレンス探ってみただけで試したりしてないけど
dateコマンドと同じ様なのがBSDレベルでもありそうな気がするけど
182 Name: 名称未設定 [sage] Date: 2008/02/13(水) 00:36:31 ID: hLcBAx030 Be:
>>177
俺以前NSCalendarDateでやったけど、NSDateと使いやすい方でやればいいと思う。
「Dates and Times Programming Topics for Cocoa」ってそのまんまの
ドキュメントがあるよ。
183 Name: 名称未設定 [] Date: 2008/02/13(水) 12:30:50 ID: hWx8cVEU0 Be:
cocoaブラウザでマニュアルがうまく表示されない(最初のフォルダ名だけが表示される)ので
デベロッパツールを再インストールしようとしたのですが、エラーが起きてできません
そもそもデベロッパツールを以前インストールしたことはあったのか、よく思い出せませんが
Xcodeは使えています。エラー文の内容は「次のインストール手順に失敗しました。run preinstall
script for developer tools.」というものです。どう対処したら良いか分かる方教えてください
184 Name: 名称未設定 [hage] Date: 2008/02/13(水) 13:11:25 ID: x4NhLgMt0 Be:
>>183
(Xcode3の前提で...)
Xcode3に付いてくるドキュメントはそれ以前のものとディレクトリ構造が違うから、
Cocoa Browserは使えないようだ(いま確認した)。

アンインストールは、OSX10.5DVDのMac OS X Install DVD/Optional Installs/Xcode Tools/About Xcode Tools.pdf を嫁。
終わりの辺りにアンインストール用のスクリプトが書いてる。

てか>>183はプログラム向いてない。
185 Name: 名称未設定 [] Date: 2008/02/13(水) 15:00:44 ID: hWx8cVEU0 Be:
>>184
ありがとうございます。ちゃんと調べろ、って意味でしょうか
186 Name: 名称未設定 [sage] Date: 2008/02/13(水) 15:55:50 ID: ElkTRkCf0 Be:
きっとプログラミング適性認定士の人なんだよ
187 Name: 名称未設定 [sage] Date: 2008/02/13(水) 15:59:58 ID: zZkq+nSN0 Be:
プログラム以前のセンスがない。
なんせんすw
188 Name: 名称未設定 [sage] Date: 2008/02/13(水) 22:55:05 ID: tq6qN3wO0 Be:
・ソフトウェアの名前を正確に書けない
・自分が使っているソフトウェアのバージョンを示せない
・Googleを使いこなせない
プログラム以前にこれだけの問題がある

Cocoa Browser Xcode 3.0 でググれば Cocoa Browser SN がトップヒットする
ソフト名とバージョンでググるのは、彼には難易度高いだろうが頑張れ
189 Name: 名称未設定 [sage] Date: 2008/02/13(水) 23:09:49 ID: tOkhYQQF0 Be:
>>188
とどめを刺すなよ。wxのお人よりはマシなんだから、優しくしてあげなよ。
190 Name: 名称未設定 [sage] Date: 2008/02/13(水) 23:57:16 ID: ZMdVQlot0 Be:
>>189
アイツは何の開発してんだろな。
周辺機器に付属するソフトらしいが...
フェリカ関連とかなら、Macユーザー皆ガッカリだな。
191 Name: 名称未設定 [sage] Date: 2008/02/14(木) 00:03:45 ID: tNnS+0Fo0 Be:
>>183
"最初のフォルダ名"って、それフォルダ名じゃないですから。
フレームワーク名だよ。

最近はmkinoさんが入門書やセミナーでCocoaプログラミングの間口広げたりとか、
Objective-C 2.0でメモリ管理が楽になった関係で、初心者増えてんのかな??
ADCも翻訳ドキュメント増えてるし。
192 Name: 名称未設定 [] Date: 2008/02/14(木) 00:25:34 ID: IHEpmM1b0 Be:
質問です。
finderのウィンドウをクリックするイベントを取得したいのですが、
どのようにすれば良いですか?
193 Name: 名称未設定 [sage] Date: 2008/02/14(木) 01:14:05 ID: 2vR2hRjj0 Be:
もうね・・・なんかね・・・
194 Name: 名称未設定 [sage] Date: 2008/02/14(木) 01:54:17 ID: IHEpmM1b0 Be:
>>193
要するに解んないんでしょ?

なんだこれ、おもしれー
http://developer.apple.com/samplecode/UIElementInspector/index.html
195 Name: 名称未設定 [sage] Date: 2008/02/14(木) 02:47:53 ID: 4cuFCMDR0 Be:
こいつぁひどい
196 Name: 名称未設定 [sage] Date: 2008/02/14(木) 06:40:30 ID: 8cvrNmzT0 Be:
>>194 のサンプルはそのままだと日本語環境でクォートが文字化けするなあ。
このぐらいちゃんとしておいてほしいものだ > 中の人
197 Name: 名称未設定 [sage] Date: 2008/02/14(木) 06:42:56 ID: 6KCJ8+yd0 Be:
というかレパードなら /Developer/Applications/Utilities/Accessibility Tools/
に入っているんだが ...
198 Name: 名称未設定 [sage] Date: 2008/02/14(木) 06:48:50 ID: Pdak6Ccy0 Be:
>>192
NSCoreServiceEventHandlerを探してみるといいことあるかもしれないよ
199 Name: 名称未設定 [sage] Date: 2008/02/14(木) 12:03:41 ID: wuTSPo/K0 Be:
何か最近この板のプログラミング関係のスレで無礼な質問者が多いな
ほとんど一人なのか入門者が増えてるのか
200 Name: 名称未設定 [sage] Date: 2008/02/14(木) 12:21:56 ID: +3rXw5770 Be:
すんません、俺です
201 Name: 名称未設定 [sage] Date: 2008/02/14(木) 12:44:00 ID: lWs9KW2t0 Be:
入門者といえば俺もそうだけど、見ているだけだ。
まだ質問するようなレベルにも達していないぜ。
202 Name: 名称未設定 [] Date: 2008/02/14(木) 14:31:21 ID: Clomt4Sp0 Be:

win系のプログラマでもここまで酷い質問をする人は多くない。
会社の中のダメなプログラマを割り当ててるんじゃない?
203 Name: 名称未設定 [sage] Date: 2008/02/14(木) 15:47:35 ID: 2GXMUdLz0 Be:
iPhoneのアプリってiPod touchでも使えるんだよね?
SDKの配布が開始されたら開発者増えるかな。
204 Name: 名称未設定 [sage] Date: 2008/02/14(木) 19:16:05 ID: ksn/tePY0 Be:
すんません、全部俺です。
もうこれ以上皆さんに迷惑をかけたくないので
やっぱりMacでのアプリ開発は辞めます。

みなさん今まで本当にありがとうごさいました。
205 Name: 名称未設定 [sage] Date: 2008/02/14(木) 19:32:32 ID: Lva4VeDJ0 Be:
みなさん有意義なスレにしましょう。
206 Name: 名称未設定 [sage] Date: 2008/02/14(木) 21:22:43 ID: Y52audrL0 Be:
NSTableViewなどにドロップした時、acceptDropでYESを返す前にペーストボードから
大量の処理を行うと、しばらくカーソルのマークが+のままで気に入らないのですが、
YESを返したあとに処理を行うにはどうすれば良いでしょうか?

いったんペーストボードの情報を配列などに格納して、それから処理をすればいいと思うのですが、
acceptDropでYESが返されたかどうがの判定がわからないのです。
「配列の内容が変わったら」の通知でいけそうな気もしますがどう書けばいいのかわかりません。

よい知恵がありましたらお願いします。
207 Name: 名称未設定 [sage] Date: 2008/02/14(木) 22:12:50 ID: nbubxl5h0 Be:
NSObjectのperformSelector: withObject: afterDelay:
でdelayを0にしてやれば、次のrunLoopでスケジュールされるよ
208 Name: 名称未設定 [sage] Date: 2008/02/14(木) 22:22:10 ID: OnNeG9+L0 Be:
最初はみんな初心者なのにね。
macでプログラムしようなんて人はただでさえ少ないのに
なんでこう排他的なんだろう。
悲しくなるわ。
209 Name: 名称未設定 [sage] Date: 2008/02/14(木) 22:39:37 ID: CZoJyT9b0 Be:
そりゃ、2ちゃんだから。
macとwindowsでプログラマの気質が違うとか論じても仕方ない。
ここはゴミ埋立処分場程度の認識だよ。S/N比低いし。
稀に良い情報も有るけど。
210 Name: 名称未設定 [sage] Date: 2008/02/14(木) 22:42:21 ID: nbubxl5h0 Be:
mkinoさんのとこに以前あった掲示板とか使わせてもらって
すごく助かった覚えがあるなぁ
CocoaBindingの勉強、あそこが無かったらムリだった
いつか復活しないかな。
211 Name: 名称未設定 [sage] Date: 2008/02/14(木) 22:54:55 ID: R6ifJKPT0 Be:
>>208
排他的かそうでないか以前に、礼儀というものがあるとおもう
初心者の質問にはたいてい答えがでてるんじゃない?
言葉は厳しいけど。質問が丁寧なら答えも丁寧だし、
質問がぶっきらぼうなら答えもぶっきらぼうなだけで。
212 Name: 名称未設定 [sage] Date: 2008/02/14(木) 22:56:08 ID: vCknh0st0 Be:
そういやHMDTのBBSで初めてテーブルのバインディング方法を知ったな
213 Name: 名称未設定 [sage] Date: 2008/02/14(木) 22:57:05 ID: D6AGxe9e0 Be:
別にぶっきらぼうに答えるのはいいと思うけど
時間があいた「悪い質問」に何人も嫌みを言うのはどうなのよとは思うね
214 Name: 名称未設定 [sage] Date: 2008/02/14(木) 23:14:36 ID: sPMhCEuG0 Be:
プログラマとしての知識の多寡は問題じゃないでしょう
社会人としての常識に欠ける人が問題なだけで
答える側だって無償でやってるんだから、答えてあげても良いかな、と思わせるような質問をしないと
215 Name: 名称未設定 [sage] Date: 2008/02/14(木) 23:23:30 ID: OnNeG9+L0 Be:
そうかもしれんが、掲示板の常だとは思うが(mixiのmacコミュでも)
よってたかってになると、ほかの初心者にとっても質問しづらい雰囲気になると思う。
それがマナーだと言われればそうなんだろうけど、なんかなぁ。
216 Name: 名称未設定 [sage] Date: 2008/02/14(木) 23:33:41 ID: nbubxl5h0 Be:
>答える側だって無償でやってるんだから、答えてあげても良いかな、と思わせるような質問をしないと

こういうことは思ってても言わないのが大人だと思いますよ。
これでは上司が部下にいうような諭し方です。
217 Name: 名称未設定 [sage] Date: 2008/02/14(木) 23:36:48 ID: 2vR2hRjj0 Be:
ここでは言わないとダメだろ

つか無礼なのが問題であって初心者とか関係ないし
218 Name: 名称未設定 [sage] Date: 2008/02/15(金) 00:10:46 ID: 09i7oEa70 Be:
こういう話題でしかスレが伸びない現状
219 Name: 名称未設定 [sage] Date: 2008/02/15(金) 01:56:30 ID: QR/oHBub0 Be:
wx の人はひどすぎだと思う。他の人は何も問題ないから、沢山質問してね !
220 Name: 名称未設定 [sage] Date: 2008/02/15(金) 02:23:38 ID: TVIoFEHo0 Be:
ま、どうでもいいな
221 Name: 名称未設定 [sage] Date: 2008/02/15(金) 09:50:37 ID: cdS73ETs0 Be:
Cocoaとか、プログラミング本体そのものは割と簡単。
ただ、一番最初にどこにコードを書いたらいいのかというとっかかりがちょこっと分かりにくい。
これはC言語系一般に共通する事ではあるのだが…。

実際にはClassフォルダか何かを右クリック、「追加→新規ファイル」で
適当に「Objective-Cの書類を追加」してそこに思い思いにコードを書き…

Resourceフォルダの中に入ってる***.nibフォルダでウィンドウなどのパーツを組み、
***.hの@interfaceのところに「IBOutlet」でプラグを形成し、***.nib側でそのプラグにリンクさせる。

みたいな手順を踏む。
こんな感じの開発の流れだったと思う。
222 Name: 名称未設定 [sage] Date: 2008/02/15(金) 10:33:57 ID: DTymAYG50 Be:
>>207
ありがとうございます。
チャレンジしてみます。
223 Name: 名称未設定 [sage] Date: 2008/02/15(金) 11:12:09 ID: cdS73ETs0 Be:
と言いつつも、自分もそんなに詳しいわけではないorz

エクセルのcolumn、rowの幅を変更する、とか選択のセルを広げるみたいなインターフェースを考えたとき、
どういう設計思想でまとめると具合がいいのか分からずにいる。

NSMatrixをベースに考えたらいいのか、NSMutableArrayをベースに考えたらいいのか
GUIと組み合わせた時に最適な設計の方向性はどのようなものが良さそうか。

設計思想の相談っぽくなるからスレ違いかな…
224 Name: 名称未設定 [sage] Date: 2008/02/15(金) 20:36:24 ID: XEVibBPe0 Be:
>>178
遅くなりましたがありがとうございます。
こんな簡単に書けるんですね。
ただ、hourがない場合とminが10以下の場合は0を表示したくないので、
やっぱちまちまとif文で書く事にします^^;
225 Name: 名称未設定 [] Date: 2008/02/15(金) 21:38:47 ID: oqE3Ixxq0 Be:
>>223
そういう特殊なViewは、NSMatrixなんかの既存のクラスをベースにするより、NSViewから直接サブクラスを作った方が楽にいくと思うよ。
Model側は、NSMutableArrayベースでよいと思います。
ただし、MVCパターンに忠実にViewを設計するなら、View内でModelデータを保持しないので、drawRect:内でModelのデータを読み出しつつViewを描画するのが、とりあえず楽かと思います。
226 Name: 名称未設定 [sage] Date: 2008/02/16(土) 01:44:30 ID: 4FH+FMZ+0 Be:
>>224
%02d を %d に変えると 0 が表示されなくなるよ。
ってこれは Cocoa じゃなくて単に C の話だけど。
printf のフォーマット文字列を適当に調べてね。
227 Name: 名称未設定 [sage] Date: 2008/02/16(土) 01:54:34 ID: tPBsTPZz0 Be:
Xcode3でTiger以上で動作するのを目標にアプリ作ったんだが、
実際にTigerで動かしてみると落ちまくり・・
細かいところ結構違うのな・・
228 Name: 名称未設定 [sage] Date: 2008/02/16(土) 10:11:49 ID: gZ6RBFi00 Be:
>>226
それだと数字が表示されなくなるだけで
結局コロン(というか区切り字)は表示されるから微妙な気がする
用途によるけど
229 Name: 名称未設定 [sage] Date: 2008/02/16(土) 10:15:51 ID: Eyz/1BW40 Be:
>>227
>細かいところ結構違うのな・・

例えばどんなところ?
230 Name: 名称未設定 [sage] Date: 2008/02/16(土) 11:36:23 ID: qbCe38+h0 Be:
>>227
SDKを設定していますか?
プロジェクトの情報からSDKを設定してください。

Objective-C 2.0 の機能を使っていませんか?
Leopardでしか動きません。使用を中止してください。

ガベージコレクションを有効にしていませんか?
Leopardでしか動きません(たぶん)。無効にしてください。

xib 3.0形式を使用していませんか?
Leopard以外だとなんかまずいらしいです。使用を中止してください。
231 Name: 名称未設定 [sage] Date: 2008/02/16(土) 12:06:59 ID: Dd3xK0Kf0 Be:
優しいね
232 Name: 名称未設定 [sage] Date: 2008/02/16(土) 16:51:22 ID: RPnk6eix0 Be:
NSTextField がいくつか貼り付けてあるウインドウがあって、
コード内から特定のフィールドを入力可能状態にしたいんですが、

[window makeFIrstResponder: textField];

とやると、textField のフォーカスリングは点灯するのですが、
一度そのフィールド内をクリックしてやらないとフィールド内に
カーソルが出ず、文字入力は受け付けてくれません。

最初から文字入力を受け付ける状態にするには、どう書けば
良いでしょうか。
233 Name: 名称未設定 [] Date: 2008/02/16(土) 19:56:46 ID: /phORhcB0 Be:
[textField performClick:self];
とかは?
234 Name: 名称未設定 [sage] Date: 2008/02/16(土) 21:28:53 ID: 89DZUxew0 Be:
すいません。質問させてください。

”main”ウィンドウと”sub”ウィンドウを作りました。
”main”ウィンドウ上の”A”ボタンを押すと"sub"ウィンドウが現れるようにしました。

そこで、"sub"ウィンドウ上に作った”B”ボタンを押したときに”main”ウィンドウのコントローラのインスタンス変数にアクセスするにはどうすればいいのでしょうか?
235 Name: 名称未設定 [sage] Date: 2008/02/16(土) 21:31:48 ID: QDIiUSUT0 Be:
一つのnibファイル上で、二つのウィンドウを作っているんだよね?
ならsubのコントローラからoutletをmainのコントローラに引くのはダメ?
236 Name: 232 [sage] Date: 2008/02/16(土) 21:37:29 ID: RPnk6eix0 Be:
>>233
試してみましたが、だめでした。
NSTextField にバインディングを設定してるんですが、
それが悪さをしてるでしょうか‥
237 Name: 名称未設定 [sage] Date: 2008/02/16(土) 21:50:03 ID: 89DZUxew0 Be:
>>235
レスありがとうございます。
すいません。情報が少なすぎますよね。

http://www.macmacmac.mydns.jp/modules/tinyd0/index.php?id=14
を参考にして2つのウィンドウを扱うようにしたのでnibファイルは二つに分かれています。

上記サンプルと違うのは起動時に”main”ウィンドウは開くようにしています。

作ろうとしているのは
設定項目一覧用のウィンドウとしてNSTableViewを配した”main”ウィンドウ。
各Row設定項目を編集するための編集ウィンドウとして"sub"ウィンドウを作りました。

"sub"ウィンドウ側で編集した内容をデータソースに反映させるために
selectedRowを"sub"ウィンドウ側から取得したいという状況です。
238 Name: 名称未設定 [sage] Date: 2008/02/16(土) 22:16:32 ID: y+1mOBUh0 Be:
>>237

サブウインドウを管理するのがWinController.h だよね
WinController サブクラスにインスタンス変数 NSTableView* tableView ;
を追加して、メソッド
-(void)setTableView:(NSTableView*)aTableView
{
tableView = [aTableView retain];
}
みたいにしてメインウインドウ中のテーブルを教えてあげればいい。

>>236
元々フォーカスが当っている text field が何らかの理由で first responder を resign しない、みたいな理由じゃないのかな。
239 Name: 名称未設定 [sage] Date: 2008/02/16(土) 22:17:19 ID: y+1mOBUh0 Be:
>>238
>WinController サブクラス
じゃなくってWinControllerのクラスそのものだった
240 Name: 名称未設定 [sage] Date: 2008/02/16(土) 22:30:14 ID: QDIiUSUT0 Be:
そのようにするなら、二つのWindowは一つのnibにおいて
ひとつのControllerで一緒に扱う方がよいのでは。

241 Name: 名称未設定 [sage] Date: 2008/02/16(土) 22:30:23 ID: E6gXC2xw0 Be:
>>236
[window makeFirstResponder:textField];で十分なはずだけど、、

id fieldEditor = [window fieldEditor:YES forObject:textField];
[window makeFirstResponder:fieldEditor];
を追加してもダメですか?

242 Name: 名称未設定 [] Date: 2008/02/16(土) 22:48:21 ID: mIBg0tCV0 Be:
>>237
それって、単純に2つのViewを1つのModelとBindすれば済む話じゃ?
243 Name: 名称未設定 [sage] Date: 2008/02/16(土) 23:13:01 ID: E6gXC2xw0 Be:
>>237
Nibファイルの内と外との連絡をするのはFile’s Ownerです

参照したいオブジェクトをoutletなりインスタンス変数として
参照します

詳しくはAccessing the Contents of a Nib File
http://developer.apple.com/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/chapter_3_section_6.html#//apple_ref/doc/uid/10000051i-CH4-SW7
を見てください。

244 Name: 237 [sage] Date: 2008/02/17(日) 02:34:43 ID: AR1yqRov0 Be:
たくさんのレスありがとうございます。
理解力がないのですべてを検証できていませんが、

>>238
[self setTableView:]
これの引数のNSTableViewはどこから取ってくればいいのでしょうか?

>>242
BindっていうのはCocoaBindingというやつでしょうか?
ちょっと難しそうですが試してみます。

>>235
>>240
1つのnibファイルでやる方法を適当な動作確認用アプリを作って試してみました。
この方法で希望の動作ができることが分かりました。

>>243
ちょうどFile'sOwnerって何だ?って思っていたところなので助かります。
ちょっと勉強してみます。
245 Name: 名称未設定 [sage] Date: 2008/02/17(日) 11:12:02 ID: 57jpes6V0 Be:
>>244

>[self setTableView:]

self じゃないよ。
メインのnib のオーナー(例えばMyDocument)はメインウインドウ上のNSTableView への
アウトレット(tableViewとする)を持つことができるでしょ?
MyDocument 上で、サブウインドウのコントローラオブジェクトを以下のように作成したあとで、参照を教えてあげる
WinController *windowController = [[ WinController alloc] init];
[windowController setTableView: tableView];

こうすれば、windowController 側から メインウインドウのテーブルにアクセスできる。
WinControllerには上のメソッドを予め作成しておく。
246 Name: 237 [sage] Date: 2008/02/17(日) 12:27:44 ID: AR1yqRov0 Be:
>>245
おおおぉぉ!
教えていただいた様にしたらWinController側から
メインウインドウ上のNSTableViewのselectedRow がとれました。

勉強になりました。

本当にありがとうございました。
247 Name: 名称未設定 [sage] Date: 2008/02/17(日) 21:07:52 ID: fWhtrPAi0 Be:
cocoa本のおすすめを教えて下さい。和書限定で
248 Name: 名称未設定 [sage] Date: 2008/02/17(日) 21:13:40 ID: JpVHkWBN0 Be:
>>247
おすすめもなにも和書限定で今店頭にあるのなんて片手で数えられる位しかない
249 Name: 名称未設定 [sage] Date: 2008/02/17(日) 21:43:17 ID: fWhtrPAi0 Be:
>>248
Leopardで使える内容ですか?
250 Name: 名称未設定 [sage] Date: 2008/02/17(日) 22:40:24 ID: 64Ai+vkJ0 Be:
NSTaskでunzipを利用してzipの中のファイルをpipeで読もうと試みています。

zip内に直接ファイルが格納されていれば引数 -p でpipeから普通に読めるのですが、
zip内にフォルダがあり、その中のファイルを読もうとするとフォルダ自身を読んでるみたいで
ファイルを読むことができません。-jをつけても駄目でした。

素直にzlib使えばいいんですが、unzip経由でメモリに解凍するいい方法はないでしょうか?
251 Name: 名称未設定 [sage] Date: 2008/02/17(日) 23:27:08 ID: l+f0yW5L0 Be:
>>249
使えるといえば使える。Obj-C 1.0 が解説してあるから。
Obj-C 2.0, Xcode3, IB3 について解説した本って和書では出てないんじゃないかな。
252 Name: 名称未設定 [sage] Date: 2008/02/18(月) 01:09:47 ID: ET+ouAJH0 Be:
そだな、まずは

HappyMacintoshDevelopingTime SecondEdition
木下誠(BNN)
Objective-C MacOSX プログラミング
荻原剛志(ソフバンクリエイティブ)

の2冊あたりか。上は開発ツール全体を含めたCocoa入門書。下はObj-CとCocoaの中のFoundationFrameworkについて詳しい。
ツールの使い方は脳内変換でいけるとおもうよ。ただ上が10.3、下が10.4くらいまでだ。あとヒレガス本の和訳だな。
253 Name: 名称未設定 [sage] Date: 2008/02/18(月) 01:51:41 ID: XdaORCnz0 Be:
荻原本は正直初心者にはお薦めしない
すごく良い本で後々絶対役に立つけど、入門本だと思って買うとかなり違う
つうか>>247は質問が曖昧過ぎる
プログラミングはまったく未経験とか、JAVAやC、あるいはAppleScriptの経験はあるとか、
そういう情報を出せばお薦めする本も自ずと変わってくるのだが
俺のおすすめはまったくの初心者なら「たのしいCocoa」、
Cくらい知っているならMac OS X Cocoaプログラミング(いわゆるヒレガス本)かな
Leopard対応の和書はまだ一冊もないはず
254 Name: 名称未設定 [sage] Date: 2008/02/18(月) 02:24:04 ID: GFrhSAXM0 Be:
>>253
和書、ではないけど、日本語版の解説なら ADC にあるよ。
http://developer.apple.com/jp/documentation/japanese.html
まあこれは C を知ってないとどうしようもないかも。

あとは、まあ、頑張って英語読もうね ...
いずれ細かい API を知りたくなったら API ドキュメントよまないと
しかたなくなるし、メソッド名の意味とかわからないとちんぷんかんぷんだろう。
255 Name: 名称未設定 [sage] Date: 2008/02/18(月) 11:18:16 ID: k5a4KsxB0 Be:
PopUpButton とか ButtonCell とかのテキストの色を変えるには
どうすればいいですか。

HUD に置いた PopUpButton とかのテキストの色を灰色にしたいです。
256 Name: 名称未設定 [sage] Date: 2008/02/18(月) 11:25:41 ID: ghv7Mcc/0 Be:
cocoa以前にまずは英語読めるようにならないとな。。
257 Name: 名称未設定 [sage] Date: 2008/02/18(月) 11:27:23 ID: Q3IQLzZy0 Be:
MacでプログラミングしたいならJavaか旧態依然としたCUIアプリがいいよ。
まともなGUIアプリならWindows一択だね。
258 Name: 名称未設定 [sage] Date: 2008/02/18(月) 11:31:41 ID: 2WAXQd/x0 Be:
ん?
259 Name: 名称未設定 [sage] Date: 2008/02/18(月) 11:34:40 ID: zir6Ss/g0 Be:
Java(笑)
260 Name: 名称未設定 [sage] Date: 2008/02/18(月) 11:38:05 ID: XJKW4YwB0 Be:
荻原本の「14章:簡易ビューア」って、Leopard + Xcode 3.0環境だと
インスペクタパネルが表示されなかったりして、うまく動かないかも。
デリゲートについて学ぼうと思ったんだけどな。
261 Name: 247 [age] Date: 2008/02/18(月) 11:53:30 ID: fZjZ8B3L0 Be:
みなさん、ご回答ありがとうございます
>251
そうですね。まずはObjectiv-Cから始めます
>252
ありがとうございます。2冊目は取り寄せて読み始めています。1冊目も手配します
>253
すいません。C++は15年ほどやってます。Windowsメインの職業プログラマです。
やはり洋書取り寄せないとだめですかね。
>254
ありがとうございます。最近Windows開発ではぐぐればほぼ間違いなく日本人のサイトで資料入手できるんもんですからすっかり英語には腰が引けてました。少しがんばって読んでみます
>256
がんばります
>260
なるほど。気をつけます
262 Name: 名称未設定 [sage] Date: 2008/02/18(月) 11:59:40 ID: GFrhSAXM0 Be:
247 さんがいろいろ理解したら頑張って日本語で情報発信してください
263 Name: 名称未設定 [sage] Date: 2008/02/18(月) 12:47:53 ID: oRoDv33B0 Be:
>>250
HetimaZipBrowser0.1
264 Name: 名称未設定 [sage] Date: 2008/02/18(月) 12:58:23 ID: /0xxfjv60 Be:
>>257
Appleのjava対応はやるきがあるのかないのかわからんから微妙。
265 Name: 名称未設定 [sage] Date: 2008/02/18(月) 13:29:20 ID: m8SKGirC0 Be:
C++15年もやってるならCocoaは余裕だな。たぶん。
266 Name: 名称未設定 [sage] Date: 2008/02/18(月) 13:55:34 ID: KOtA4sww0 Be:
何ヶ月か経ってようやく本を読むところにたどり着いたな
よかったな
267 Name: 名称未設定 [sage] Date: 2008/02/18(月) 14:46:59 ID: WPvEcvLA0 Be:
なぜこれを勧めないの?

Cocoaアプリケーションチュートリアル
http://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjCTutorial
268 Name: 名称未設定 [sage] Date: 2008/02/18(月) 16:13:14 ID: LyOhXzC90 Be:
15年もやってて英語も読めないとは。
むしろwin書籍の充実ぶりに嫉妬。
269 Name: 247 [sage] Date: 2008/02/18(月) 16:30:33 ID: fZjZ8B3L0 Be:
>262
へたれなわたしには無理だと思います
>265
そうだといいんですが
>266
なんか敵意を感じますね?
>267
ありがとうございます
>268
昔は読んでたんですよ(汗。
でも最近じゃSDKの日本語化も進んでて読む機会はめっきり減りました(言い訳
270 Name: 名称未設定 [sage] Date: 2008/02/18(月) 17:10:47 ID: zOF+d4Tg0 Be:
>>255
- (void)setAttributedTitle:(NSAttributedString *)aString
271 Name: 名称未設定 [sage] Date: 2008/02/18(月) 19:51:48 ID: CQ+uiWfh0 Be:
参考書の索引を見てもほとんどNしかないのが笑える。
272 Name: 名称未設定 [sage] Date: 2008/02/18(月) 21:27:19 ID: 1MdWeLOI0 Be:
>>271
ObjC3 ではパッケージの機能が導入されて全部プレフィックスがとれるとか...
さすがにないか(どっちも)。
そういや WebOjbects や Cocoa-Java でもとれてないし。
273 Name: 名称未設定 [sage] Date: 2008/02/18(月) 23:46:48 ID: KNJFfC1w0 Be:
>>255
なぜ、そんなものの色を変えなければならない?

テキストの色を変えることと、
コントロールをDim化することとは違うよね。
274 Name: 名称未設定 [sage] Date: 2008/02/18(月) 23:54:43 ID: GFrhSAXM0 Be:
というか IB でカラーパレットを開いて色をつけたらおしまいな気が ...
275 Name: 名称未設定 [sage] Date: 2008/02/19(火) 00:08:28 ID: IqE+9f+W0 Be:
IB上でできるのはTextFieldとかだけじゃ
276 Name: 255 [sage] Date: 2008/02/19(火) 00:19:51 ID: jYApbLZF0 Be:
>>270
ありがとうございます。NSMatrix 内の NSButtonCell はそれでできました。
NSPopUpButtonCell の方は、なぜかうまくいきません。

>>273
HUD 上で見やすくしたいからです。
NSPopUpButton で isBordered を NO にしていますが、
NSPopUpButtonCell のテキストの色が黒では読みにくいです。

>>274
ButtonCell のテキストの色も変えられるのでしょうか?
やってみたところ、変わりませんでしたが‥

>>274, 275
NSTextField と NSTextFieldCell は、IB のカラーパレットで
設定しました。
277 Name: 名称未設定 [sage] Date: 2008/02/19(火) 00:31:06 ID: TJuG+yIv0 Be:
>>267
なんだか1940~1950年代の新聞活字みたいで鬱だ。
今どきこのフォントを使っているのは中華か台湾?
278 Name: 名称未設定 [sage] Date: 2008/02/19(火) 00:33:03 ID: jgjsXYjt0 Be:
>>276
テキストを持ってるのはNSPopUpButtonCellじゃなくない?

ついでに俺も聞きたいけど、Windowのタイトルの文字の色はどうやったら変えれますかね?
279 Name: 名称未設定 [sage] Date: 2008/02/19(火) 00:39:51 ID: jgjsXYjt0 Be:
レパだったらIB上でいけた、、知らなかった。

ところでWindowのタイトルの文字色は
280 Name: 252 [sage] Date: 2008/02/19(火) 00:47:28 ID: +CrHN9wS0 Be:
>>261
>最近Windows開発ではぐぐればほぼ間違いなく日本人のサイトで資料入手できる

Winてのはうらやましいな。こっちはすぐに英語だ。
は、言葉の話題はここでは禁句だったか?
281 Name: 名称未設定 [sage] Date: 2008/02/19(火) 00:49:30 ID: lDXKyuLE0 Be:
>>276
270です
>NSPopUpButtonCell の方は、なぜかうまくいきません。

となると
- (void)drawTitleWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
を上書きしないといけないかな?

個人的にはHUDは癖のあるインターフェイスなので、使い方は
注意がいると思います。
Apple Human Interface Guidelinesにもいろいろ注意が
書いてあります。



282 Name: 名称未設定 [sage] Date: 2008/02/19(火) 02:07:25 ID: fHYgawbi0 Be:
>>277
うちでは普通にヒラギノゴシックで表示されてるけど ...
CSS とかみても別になにもアジアフォントは設定してないぽいから、
そちらの設定がすこし変なのでは?
283 Name: 名称未設定 [sage] Date: 2008/02/19(火) 02:08:38 ID: HFIoj9YG0 Be:
PDFのことを言ってるんだろう。
確かにあまり使わないフォントだと思う。
284 Name: 名称未設定 [sage] Date: 2008/02/19(火) 03:49:03 ID: i8doDWTI0 Be:
中国語用のフォントかあ。翻訳はオフショアだったりして。
285 Name: 名称未設定 [sage] Date: 2008/02/19(火) 04:59:33 ID: fHYgawbi0 Be:
AdobeSong と AdobeFangsong でした。
とりあえず ADC にヒラギノにしろとメールしておいた。
286 Name: 名称未設定 [sage] Date: 2008/02/19(火) 10:41:12 ID: Zxra0/AhO Be:
携帯から失礼します

NSScrollerをiTuensのようなマットな感じの外見に設定するにはどうしたらいいんでしょうか

サブクラスでやらないで出来た記憶があったのですが
よろしくお願いします
287 Name: 名称未設定 [sage] Date: 2008/02/19(火) 10:59:14 ID: v8daFgbB0 Be:
無理です。
サブクラスでガシガシ書くしか。
288 Name: 名称未設定 [sage] Date: 2008/02/19(火) 13:06:52 ID: hzk05mEx0 Be:
>>276
270です
試していませんが
iLife Controls; HUD windows and more
http://lipidity.com/apple/ilife-controls-hud-windows-and-more/
が使えるかもしれません
289 Name: 名称未設定 [sage] Date: 2008/02/19(火) 16:41:48 ID: VsrKJ+jp0 Be:
mkinoさんが既にサブクラスを書いているから、それを流用すれば
290 Name: 名称未設定 [sage] Date: 2008/02/19(火) 17:18:35 ID: H5jYyic70 Be:
>>288>>289
ライセンスはどうなるのでしょう?
商用で使いたい場合とか
291 Name: 名称未設定 [sage] Date: 2008/02/19(火) 17:44:21 ID: sM/ABBA/0 Be:
>>290
それは自分で調べても見つからない情報なのか?
それとも見つけるのが面倒なだけか?
292 Name: 名称未設定 [sage] Date: 2008/02/19(火) 17:54:51 ID: H5jYyic70 Be:
英語なのでなんとなくでしか理解できません
なんとなくで使ったらマズいと思いまして
293 Name: 名称未設定 [sage] Date: 2008/02/19(火) 18:12:53 ID: kUKVxqT10 Be:
>>292
ここの住人もなんとなく答えるだけだぞ
294 Name: 名称未設定 [sage] Date: 2008/02/19(火) 19:35:04 ID: le1+UQC40 Be:
英語以外で書かれてるライセンス文なんてほとんどないだろ
その二つは独自ライセンスじゃないはずだからググれば日本語訳出てくるし
295 Name: 名称未設定 [sage] Date: 2008/02/19(火) 19:54:48 ID: MG1t/YlR0 Be:
コピペせずに心をこめて一文字ずつ打ち込みながら写せばオケだよ。
296 Name: 名称未設定 [sage] Date: 2008/02/19(火) 20:16:22 ID: 38n8l2Px0 Be:
なるほど!
297 Name: 名称未設定 [sage] Date: 2008/02/19(火) 20:19:57 ID: 38n8l2Px0 Be:
見てみたけどフレームワークになってるからソース丸写しできないね
298 Name: 名称未設定 [sage] Date: 2008/02/19(火) 21:00:55 ID: 06rHEn2a0 Be:
人の使って金儲けするなら自分が払いたいだけ払えよ
299 Name: 286 [sage] Date: 2008/02/19(火) 21:04:38 ID: HqQvuBC60 Be:
>>287
どうやら記憶違いのようですね。
サブクラスでガシガシいく事にします。
ありがとうございました。
300 Name: 名称未設定 [sage] Date: 2008/02/20(水) 00:14:54 ID: dEnuUZT20 Be:
心をこめて一ビットずつ打ち込みながら写せばオケだよ。
301 Name: 名称未設定 [sage] Date: 2008/02/20(水) 08:09:15 ID: Ogg3DxTK0 Be:
>>277
しかし「直」とか「編」がすごいことになってるな...
まさに Han Unification。
302 Name: 名称未設定 [sage] Date: 2008/02/21(木) 11:41:18 ID: 6oO/Oi0X0 Be:
classicalなhfs path styleと、posix path styleの文字列変換は、やはり
CFURLを経由する以外によい方法がありますか。

CFURLRef myURL = CFURLCreateWithFileSystemPath(
kCFAllocatorDefault, (CFStringRef)file, kCFURLHFSPathStyle, FALSE);
CFStringRef cfPosixPath = (NSString*)CFURLCopyFileSystemPath(myURL, kCFURLPOSIXPathStyle);
NSString* posixPath = [NSString stringWithString:(NSString*)cfPosixPath];
CFRelease(myURL);

NSURL *myURL = [[NSURL alloc] initFileURLWithPath:posixPath ];
CFStringRef cfHfsPath = CFURLCopyFileSystemPath( (CFURLRef)myURL, kCFURLHFSPathStyle );
NSString* hfsPath = [NSString stringWithString:(NSString*)cfHfsPath];
[myURL release];

・・・なぜNSURLクラスにはその手のメソッドがないのでしょう・・・
303 Name: 名称未設定 [sage] Date: 2008/02/21(木) 14:40:00 ID: Sr6oQjV90 Be:
カテゴリでそれを追加してしまえばしまいなのでは?
というか HFS style のパスを使わないといけない理由がわからん。
304 Name: 名称未設定 [sage] Date: 2008/02/21(木) 17:53:27 ID: 37Z0oxp90 Be:
質問させてください。

A = B
のような関係のデータ構造なら単純にDictionaryを使えばいいと思いますが、
A = B = C
のような関係のデータの固まりを複数扱いたいと思っています。

この場合は入れ子にしたDictionaryを使うしか方法はないでしょうか?
305 Name: 名称未設定 [sage] Date: 2008/02/21(木) 18:06:58 ID: tzCzn6Lb0 Be:
1:1なのか1:nなのかどうか。
306 Name: 名称未設定 [sage] Date: 2008/02/21(木) 19:38:45 ID: G1SNSGMl0 Be:
構造体だろ
307 Name: 名称未設定 [sage] Date: 2008/02/21(木) 19:40:52 ID: Nds9kpbn0 Be:
1:*
308 Name: 304 [sage] Date: 2008/02/21(木) 22:26:30 ID: 37Z0oxp90 Be:
今はDictionaryを入れ子にしてやってみています。
最終的には例えばAからBの値もCの値も取得できるように、同様に
BからAの値もCの値も
CからAの値もBの値も取得できるようにしたいと思っています。
AーB
 ⊥C
のような構造で AからBの値とCの値は取得できるようになったのですが、
この構造でBないしCの値からAを取得するにはどうすればいいでしょうか?
309 Name: 名称未設定 [sage] Date: 2008/02/21(木) 22:34:33 ID: QVBoRZyf0 Be:
sqliteつかえば?
310 Name: 名称未設定 [sage] Date: 2008/02/21(木) 22:40:14 ID: xFLGoheh0 Be:
NSTreeControllerとか。使った事無いけど。
311 Name: 名称未設定 [sage] Date: 2008/02/21(木) 22:50:33 ID: G1SNSGMl0 Be:
A, B, C のそれぞれをキーとする3つの配列を用意しちゃえば
312 Name: 304 [sage] Date: 2008/02/21(木) 22:59:54 ID: 37Z0oxp90 Be:
311さんの言うようにそれぞれで配列として持っていた方が楽そうですね。

その方向で試してみます。

ありがとうございました。
313 Name: 名称未設定 [sage] Date: 2008/02/21(木) 23:35:50 ID: i/cNTguO0 Be:
core dataは?
314 Name: 名称未設定 [sage] Date: 2008/02/22(金) 01:03:37 ID: M6ddHBVH0 Be:
「コア何たら」って聞くと、PCエンジンを思い出す。
315 Name: 304 [sage] Date: 2008/02/22(金) 16:43:21 ID: D2aFBIG60 Be:
core dataも勉強してみて僕にも扱えそうな感じなら使ってみようと思います。
http://developer.apple.com/jp/documentation/japanese.html
ここの上級の資料とか見てみます。

ありがとうございます。

>314
コアグラフィックスとかですね。
316 Name: 名称未設定 [sage] Date: 2008/02/22(金) 17:00:49 ID: ZUJx2x640 Be:
>>308

プロパティa,b,cを持ったHogeObject クラスを作り、そのインスタンスをarrayに入れる
arrayの中から、例えばA=@"test" を持ったhogeObjectを見つけるには 
[array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"a = '%@' ",@"test"]]; とする

抽出されたhogeObjectからBやCの値を取り出す

っていうのは?
317 Name: 304 [sage] Date: 2008/02/22(金) 21:58:39 ID: nT1kPM1k0 Be:
>>316
その方法がおもしろそうだったたのでやってみたのですが、うまくいきません。
たぶん、HogeObjectクラスの作り方が間違っているような気がします。
#import <Cocoa/Cocoa.h>
@interface Hoge : NSObject {
NSString* a;
NSString* b;
NSString* c;
}
- (id) initWithA: (NSString*) japanese B: (NSString*) english C:(NSString*) color;
-(void)setA:(NSString*)str;
-(void)setB:(NSString*)str;
-(void)setC:(NSString*)str;
-(NSString*)a;
-(NSString*)b;
-(NSString*)c;
@end
318 Name: 304 [sage] Date: 2008/02/22(金) 22:12:01 ID: nT1kPM1k0 Be:
改行大杉で怒られたのでアップロードしてみました。

ttp://uproda11.2ch-library.com/src/1166672.zip.shtml

ご指導お願いします。
319 Name: 名称未設定 [sage] Date: 2008/02/22(金) 22:33:42 ID: 7TrfC7Z40 Be:
こんなんどう?
@interface Hoge: NSObject {
NSString *a, *b, *c, *key;
}
- (NSString *) key;
- (void) setKey: (NSString *) str; #この中でretain& release

んで、key - aHoge でNSMutableDictionary に登録。
key が重複してたら添字を付けて登録したら良いし。
BOOL registoring = YES;
NSString *key = [aHoge key];
while (registoring) {
if ([aDictionary valueForKey:key] == nil) {
[aDictionary setObject:aHoge forKey:key];
[aHoge setValue:key forKey:@"key"];
registoring = NO;
} else {
key = [key stringByAppendingString:@"Piyo"];
}
}
320 Name: 名称未設定 [sage] Date: 2008/02/23(土) 00:02:47 ID: xwgRyVRe0 Be:
>>316
>[array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"a = '%@' ",@"test"]]; とする

>>318
>NSArray* foo = [ary filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"c = '%@' ",@"黄"]];

おれには'%@'じゃなくて%@でいいようにおもえるが。
321 Name: 304 [sage] Date: 2008/02/23(土) 11:25:56 ID: IL0FtBi30 Be:
当初していた想像と違ってましたがこんな感じになりました。

ttp://uproda11.2ch-library.com/src/1166857.zip.shtml
322 Name: 名称未設定 [sage] Date: 2008/02/23(土) 22:15:50 ID: F2RRmD0H0 Be:
stringWithContentsOfFile:とかで得たいファイルの名前にスペースが入ってたら、
例えばpath = @"/hoge hoge.txt"だと、ファイルが得られないのだけど、
どうすればよいでしょうか?
323 Name: 名称未設定 [sage] Date: 2008/02/23(土) 22:30:50 ID: d1QCGebM0 Be:
>>322
それはファイル名にスペースが入っている以外の理由で失敗している可能性は
ないのか?
324 Name: 名称未設定 [sage] Date: 2008/02/23(土) 22:37:21 ID: NDvX0xwB0 Be:
NSFileManager の -fileSystemRepresentationWithPath を使ってC文字列を得るとか?
325 Name: 名称未設定 [sage] Date: 2008/02/23(土) 22:52:41 ID: F2RRmD0H0 Be:
ただstringWithContentsOfFile:で読み込むにはサイズが大きすぎただけのようでした。
22M
どうもすみません、ありがとうございました。
326 Name: 名称未設定 [sage] Date: 2008/02/23(土) 23:05:28 ID: d1QCGebM0 Be:
>>325
それはサイズが大きすぎる以外の理由で(以下同文)
327 Name: 名称未設定 [sage] Date: 2008/02/24(日) 00:14:44 ID: Zc+7rTc30 Be:
>>322
/hogehoge.txt という / ではじまるファイルは、ルートディレクトリすなわち
ハードディスクのトップにあるものをさすというのは理解してるの?

ホームディレクトリの場合は
[@"~/hogehoge.txt" stringByExpandingTildeInPath]
としないといけないです。そうすると
~ が /Users/name に展開されます。
328 Name: 名称未設定 [sage] Date: 2008/02/24(日) 00:26:35 ID: wCGcWFr10 Be:
NSWindowのタイトルバーの表示、非表示を切り替える方法はありませんか?
initWithContentRectの
styleMask:NSBorderlessWindowMaskで消すだけならできましたが、制御をしたいのです。
329 Name: 名称未設定 [sage] Date: 2008/02/24(日) 00:31:17 ID: Zc+7rTc30 Be:
別に NSWindow をつくって、
[newWindow setContentView:[oldWindow contentView]]
するぐらいしか思いつきませんが、
でもそんな動作をするウインドウは見たことないので、
あまり変なことをするとユーザーが混乱するのでは?
奇抜な動作をすればいいというものではないべ。
330 Name: 名称未設定 [sage] Date: 2008/02/24(日) 00:36:28 ID: 18VIb9ze0 Be:
>>324
NSStringの -fileSystemRepresentation じゃ何か問題でもあるの?
331 Name: 名称未設定 [sage] Date: 2008/02/24(日) 01:04:58 ID: wCGcWFr10 Be:
>>329
レスありがとうございます。
画像ビューワを作っているのですが、できるだけ表示領域をひろげたくて
NicePlayerみたいに邪魔なときは消せたらいいなぁと思ったんです。
NicePlayerはViewで疑似タイトルバーでやってるようです。
332 Name: 名称未設定 [sage] Date: 2008/02/24(日) 01:16:17 ID: Zc+7rTc30 Be:
>NicePlayer
ダウンロードしてみましたが、
僕はこの window は耐えられませんね ...
あまりに他の OS X のソフトと見栄えがちがいますよ ...
まあ個人の趣味ですが。
Apple 謹製のソフトで表示領域を大きくする場合には、
たいてい全画面表示にすると思います。
そのときはウインドウタイトルどころかメニューバーやらドックもなくなります。
プレビューのスライドショーとか、iPhoto の編集モードとか。
333 Name: 名称未設定 [sage] Date: 2008/02/24(日) 02:02:32 ID: lAYBe5A10 Be:
NSWindowのタイトルバーの文字の色を変えるにはどうしたらいいですか?
334 Name: 304 [sage] Date: 2008/02/24(日) 02:53:52 ID: YsMKOfMQ0 Be:
また新たに別の問題がおこってしまいましたが
結局、A, B, C のそれぞれをキーとする3つの配列を作る方法で実装してみました。

みなさん、いろいろな方法を提案くださってありがとうございました。
335 Name: 名称未設定 [sage] Date: 2008/02/24(日) 13:59:42 ID: Zc+7rTc30 Be:
>>333
変えちゃダメ。他にそんなことやってるソフト無いでしょ。
336 Name: 名称未設定 [sage] Date: 2008/02/24(日) 15:18:43 ID: 3kyIhWkK0 Be:
>>335
自分でHUD Windowみたいなのを作りたいのです。
iLife ControllerやHMBlkAppKitを使わずに
10.4以前に同じようなものを作りたいのです。
変えちゃだめってことは変えれるってことでしょうか?
337 Name: 名称未設定 [sage] Date: 2008/02/24(日) 18:35:07 ID: o2kiR1n50 Be:
Zc+7rTc30がOSのスタンダードにこだわってるみたいだが、
変えるかどうかは>>333の自由だし、その固着した考えもどうかと思う。
俺はNicePlayerのウィンドウの邪魔な部分を消すというやり方はありだと思う。
338 Name: 名称未設定 [sage] Date: 2008/02/24(日) 18:45:49 ID: tlAzS/zw0 Be:
HUD Windowを独力で作るのは結局、
iLife ControllやHMBlkAppKitがやっていることを自分でやることに
なる。NSWindow にタイトルバーの文字色を変えるメソッドとかは無い。

時間と労力が勿体ないから、素直にHMBlkAppKitとか使っちゃうのが
いいと思うけど。どうしても使えない事情とかあるの?>>336
339 Name: 名称未設定 [sage] Date: 2008/02/24(日) 19:11:08 ID: cq2Iewp+0 Be:
自分がやるなら、ここを見て試してみることになるかな。

ダイナミックObjective-C
  ランタイムAPIでさらに動的に(5) - インスタンス変数に動的にアクセス
ttp://journal.mycom.co.jp/column/objc/031/index.html
340 Name: 名称未設定 [sage] Date: 2008/02/24(日) 19:15:05 ID: A3mOmoyE0 Be:
質問です。
Interface Builderから設定できない項目ってありますよね。
コードを書くのが面倒なので、Bindでenabledやhiddenの設定
をしようと考えたのですが、YES/NOを簡単に指定する方法って無いですか?

shared defaultで設定しておくか、オーナーにYES/NOを
返すメソッドを置いとくくらいしか思いつきません。
341 Name: 名称未設定 [sage] Date: 2008/02/25(月) 11:00:10 ID: mnsXjX6e0 Be:
>>340
自己レス。
NSValueTransformerの
NSIsNilTransformerName, NSIsNotNilTransformerName
で解決しました。
shared applicationのselfあたりにバインドしてどちらかを指定。
342 Name: 名称未設定 [sage] Date: 2008/02/25(月) 14:43:03 ID: YpQkGaPU0 Be:
>>338
なるほど、ありがとうございます。
事情があるわけではなく自分で同じことをやってみたいという好奇心です。
NSWindowをいろいろいじってみたんですが。どうやって文字の色を変えてるのだろうと。
iLife Controlsってソース公開されてたんですね、知りませんでした。
343 Name: 名称未設定 [sage] Date: 2008/02/25(月) 20:35:03 ID: pwL7RjRZ0 Be:
っていうか、Apple は自社アプリで使っているGUIパーツは
全てIBだけで使えるようにすべき。

まぁ、昔と比べてずいぶんカバーしてくれているが。
344 Name: 名称未設定 [] Date: 2008/02/25(月) 22:31:41 ID: laJ9OY3b0 Be:
>>343
ジョブたんの気分次第で増えてく感じだよな。
Lookが変わるとサイズまで変わってしまうんだもんな。
ボタンの種類なんてもうカオス。
345 Name: 名称未設定 [sage] Date: 2008/02/25(月) 22:48:18 ID: pwL7RjRZ0 Be:
せっかく黒いインスペクタウィンドウがIBで使えるように
なったんだから、その上にのっけたボタン類も同じデザインで
自動的に置かれてほしいな、と思ったり。
346 Name: 名称未設定 [sage] Date: 2008/02/25(月) 23:57:55 ID: 87djNpWj0 Be:
>>344
まあ、レパードで表面上は種類が減ったのでは ...
347 Name: 名称未設定 [sage] Date: 2008/02/27(水) 13:10:28 ID: FMBNfT6X0 Be:
相対パスについて教えてください。
プロジェクトフォルダ直下に入れた画像ファイルを指定するのに、
いきなり画像ファイルのファイル名を指定してもうまくいきません。
(いちおうプロジェクトには組み込んで参照させてあります)

Xcodeで画像ファイルを「情報を見る」してプロジェクトフォルダからの
相対パスに設定したんですが、うまくいきません。

よろしくお願いします。
348 Name: 名称未設定 [] Date: 2008/02/27(水) 14:03:45 ID: l3PTXfjd0 Be:
ヒント

NSBundle::pathForResource
NSImage::imageNamed
349 Name: 名称未設定 [sage] Date: 2008/02/27(水) 14:08:35 ID: J130Im9L0 Be:
>>347
何をどうしたいのか、いまいち伝わってこないが、
必死なのは分かった。

Xcodeが認識してくれないの?
アプリケーションバンドルに入らないの?
入ってるけど取り出せないの?
350 Name: 346 [sage] Date: 2008/02/27(水) 20:54:53 ID: eaB0ty3b0 Be:
>>348
たとえば、IBだけでNSImageで、プロジェクトに組み込んだ画像を
指定する場合は、IBでその画像の名前だけをインスペクタパネルに
入れればOKですよね。

で、コードからプロジェクトに組み込まれた画像を指定するには
どうしたらいいのですか、という質問です。
とりあえず、画像のファイル名(絶対パスではなくてファイル名のみ)
を指定してみましたが、ダメでした。

伝わらなくて、すみません...

よろしくお願いします。
351 Name: 名称未設定 [sage] Date: 2008/02/27(水) 21:13:43 ID: leiNhL1N0 Be:
>>348さんのこと馬鹿にしてんのかお前>>350
352 Name: 名称未設定 [sage] Date: 2008/02/27(水) 21:19:39 ID: nW263Zmv0 Be:
プロジェクトに追加した画像ファイルなら>>348の通りimageNamedでファイル名していすればできるよ。
353 Name: 名称未設定 [sage] Date: 2008/02/27(水) 21:22:53 ID: leiNhL1N0 Be:
ごめん、カルシウム足りてなくてイラッときた
354 Name: 346 [sage] Date: 2008/02/27(水) 21:47:01 ID: eaB0ty3b0 Be:
>>348
>>349
>>352
>>351

すみません。ありがとうございました。

>>353
申し訳ないです。
355 Name: 348 [sage] Date: 2008/02/27(水) 21:50:13 ID: l3PTXfjd0 Be:
>>351
おれは怒ってないぞーw

Resourcesにcopyされてないんじゃまいか?
.appのパッケージの内容を表示で中身見てあるか確認
ダメなら一回プロジェクト作り直し
嫌ならコマンド + option + k押してターゲットをクリーニング
ダメなときは一からやり直してともかく動かす

話はそれから
356 Name: 346 [sage] Date: 2008/02/27(水) 22:31:16 ID: eaB0ty3b0 Be:
>>355
ありがとうございます。これからやってみます!
357 Name: 名称未設定 [sage] Date: 2008/02/27(水) 22:34:32 ID: YI2lm2t+0 Be:
なんだこの流れはw
358 Name: 名称未設定 [sage] Date: 2008/02/27(水) 23:48:02 ID: it5OScRi0 Be:
半透明のウインドウのリサイズが遅いのはどうにもならないのだろうか・・
359 Name: 346 [sage] Date: 2008/02/28(木) 01:26:58 ID: G8bXEyn+0 Be:
報告です。とりあえず、プロジェクトを作り直したら、
正常に動作しました。
申し訳ありませんでしたorz
360 Name: 名称未設定 [sage] Date: 2008/02/28(木) 08:03:57 ID: BTWE97ROO Be:
>>359
プロジェクトを作り直したの?
クリーニング&ビルドじゃなくて。
361 Name: 名称未設定 [sage] Date: 2008/02/28(木) 15:44:15 ID: cMerTqn60 Be:
3時間で全部打ち直したんじゃね?
362 Name: 名称未設定 [sage] Date: 2008/02/28(木) 16:22:23 ID: g8uMaOtR0 Be:
プロジェクトに追加したけどターゲットに追加してなかっただけでしょ、たぶん。
363 Name: 名称未設定 [sage] Date: 2008/02/28(木) 22:02:52 ID: G8bXEyn+0 Be:
質問させてください。

CGDataProviderRef imageDataProvider = CGDataProviderCreateWithFilename([[NSBundle mainBundle] pathForImageResource:@"image"]);


とやって、Resouceフォルダの中のimage.tiff を読み込みたいのですが、
ポインタの型が違うと怒られます。何がおかしいんでしょうか。

364 Name: 名称未設定 [sage] Date: 2008/02/28(木) 22:05:39 ID: b9dJN5/U0 Be:
ポインタの型が違うんだと思う。
365 Name: 名称未設定 [sage] Date: 2008/02/28(木) 22:08:27 ID: a9uJIoJW0 Be:
NSString*とchar*は違う・・・
366 Name: 名称未設定 [sage] Date: 2008/02/28(木) 22:11:37 ID: eN6Cd95u0 Be:
>>363
ポインタのキャストが必要です。
367 Name: 名称未設定 [sage] Date: 2008/02/28(木) 22:19:34 ID: G8bXEyn+0 Be:
CGDataProviderRef imageDataProvider = CGDataProviderCreateWithFilename([[[NSBundle mainBundle] pathForResource:@"image" ofType:@"tiff"] UTF8String]);



とやって解決しました。くだらないミスですみません。
>>364-366 ありがとうございました。
368 Name: 名称未設定 [sage] Date: 2008/02/28(木) 23:03:47 ID: A6aYqvcq0 Be:
-UTF8Stringじゃなくって-fileSystemRepresentationだと思うんだがな。

つーか、そんな関数あったんだな。知らなかった。
369 Name: 名称未設定 [] Date: 2008/02/28(木) 23:10:31 ID: HkDGaIuF0 Be:
お力を貸してください。

アプリのhogeControllerからパネル(←環境設定みたいなものです)を
モーダルで表示して終了したらパネルの設定を記憶するようにしています。

パネル内には5つのボタンと5つのテキストフィールドがあり、
ボタンのタイトルはバインディングで設定してあります。また、テキストフィールドの
値はNSUserdefaultの適切な値とバインディングしています。
このとき、NSObjectControllerのcontentをhogeControllerに設定してあります。

hogeControllerからパネルの表示を終了してアプリを閉じるときにhogeControllerを
保持しているmainController内にて[_hogeController release];としているのですが、
hogeControllerのdeallocが呼ばれません。

hogeControllerのretainCountを確認してみると、4になっているのですが、どこで
参照カウントがあがっているのかさっぱり分からない状態です。

mainControllerでは [[_hogeController alloc] init];をawakeFromNibにて行い、
終了時に[hogeController release];としているだけです。
どなたか解決策をご存知でしたら教えてください。
370 Name: 名称未設定 [sage] Date: 2008/02/29(金) 00:31:50 ID: NTrNPfyU0 Be:
>>368
>-fileSystemRepresentation

よく調べてみたら、こっちのほうがオーソドックスみたいですね。ありがとうございます。
371 Name: 名称未設定 [sage] Date: 2008/02/29(金) 10:08:15 ID: AvjDXGM30 Be:
>>369
ホゲコンを独立した形でIB上でインスタンス化するとか。
372 Name: 名称未設定 [sage] Date: 2008/02/29(金) 10:48:20 ID: nuquRuJR0 Be:
確か、nibでインスタンス化したオブジェクトはFile's Owner が責任もってreleaseしてやらなくちゃならなかったはず。
373 Name: 名称未設定 [sage] Date: 2008/02/29(金) 11:20:16 ID: A2LYQ/E+0 Be:
>>369
OSのバージョンは何ですか?
10.3だとNSWindowControllerのバグでretain cycleが
生じている可能性があります。
374 Name: 名称未設定 [sage] Date: 2008/02/29(金) 15:22:05 ID: Jj0cAYoS0 Be:
>>369
[objectController setContent:nil];
375 Name: 名称未設定 [sage] Date: 2008/03/01(土) 02:14:43 ID: UpRwlGMm0 Be:
特定のウィンドウやパネルをExposeやSpacesに持ってかれないようにするにはどのようにすればいいのでしょう?
画面に固定したいのですが。
376 Name: 名称未設定 [sage] Date: 2008/03/01(土) 10:13:21 ID: PGIKvFSU0 Be:
>>375
ttp://cocoawiki.aerial.st/?Expose%20%A4%B7%A4%CA%A4%A4%A5%A6%A5%A4%A5%F3%A5%C9%A5%A6
377 Name: 名称未設定 [sage] Date: 2008/03/01(土) 13:12:34 ID: pBDQ5XU50 Be:
Spaces に関してはNSWindow にメソッドが用意されている
378 Name: 名称未設定 [sage] Date: 2008/03/01(土) 13:47:30 ID: C1APndUO0 Be:
なるほど、いろいろ調べてみましたがexposeの方は現状ではハックしかなさそうですね。
ありがとうございます、試してみます。
379 Name: 名称未設定 [sage] Date: 2008/03/02(日) 10:45:13 ID: vHP/LU6H0 Be:
NSWindowで A,B,Cと3つのウィンドウがありCが最前面の場合、
残りAとBの前後関係を知るにはどうすればよろしいのでしょうか?
levelで比較しても同値ですし、キーウィンドウかどうかもできないですし。

お知恵をお貸し下さいませ。

380 Name: 名称未設定 [sage] Date: 2008/03/02(日) 11:28:08 ID: hSV40TtT0 Be:
>>379
[NSApp orderedWindows];
[NSApp orderedDocuments];
381 Name: 369 [sage] Date: 2008/03/02(日) 12:55:59 ID: mi0e2JN40 Be:
>>371,>>372,>>373,>>369

遅レスですみません。インフルエンザにかかって寝込んでます...orz
ちょっとだけ確認してみましたが、確かにバインディングをはずすと
[hogeContrller retainCount] = 1となり、deallocが呼ばれます。
再度バインディングを設定して、hogeController.hに

IBOutlet id _nsObjCtrl;

としてIBのNSObjectControllerに接続し、アプリ終了直前に
[hogeController releaseObjects]を呼び

-(void)releaseObject{
while([[_nsObjCtrl] retainCount]>1)
[[_nsObjCtrl content] release];
}

とすると、その後のmainController内で[hogeController release]にて
ちゃんとdeallocが呼ばれるようになりました。
これが作法として正しいかどうかは分かりませんが、熱が引いたらもうちょっと
試してみます。ありがとうございました。
382 Name: 名称未設定 [sage] Date: 2008/03/02(日) 13:02:51 ID: CDTGwKCL0 Be:
ちょっと待て
インフルなのに起きてMacの前に座ってるなんて
命に関わるんじゃね?
383 Name: 名称未設定 [sage] Date: 2008/03/02(日) 13:04:22 ID: zueJD3wX0 Be:
>>380
即レスありがとうございます。
さっそく試してみます。
384 Name: 369 [sage] Date: 2008/03/02(日) 13:11:50 ID: mi0e2JN40 Be:
>>382

どうしても気になったものでw
ちょっと布団から抜け出してみましたww
でももう寝ます。ご心配かけてすみません。
おやすみなさい。
385 Name: 名称未設定 [sage] Date: 2008/03/02(日) 15:00:09 ID: 61s3PQ+i0 Be:
初歩的な質問なんですが、Interface Builderでアウトレットとアクションを接続する時の、
コントロールキーを押しながらドラッグする操作ができなくて困ってます。
参考書見ながらやっているのですが、線が伸びて接続するという風に書いているのですがその通りにできないです・・・。
何か設定しないといけないことがあるのでしょうか?
386 Name: 名称未設定 [sage] Date: 2008/03/02(日) 16:08:02 ID: WlNHydXc0 Be:
ふつうに出来るよ ?
つなぎたいものの上にマウスを持っていって、
コントロールキーを押したまま、
マウスをしばらく動かすと線が伸びるはずだけど。
右クリックドラッグでもいいです。
387 Name: 名称未設定 [sage] Date: 2008/03/02(日) 16:14:43 ID: 3JYxwU8x0 Be:
独自コントローラーでアウトレットを作っていないに1票
参考書の通りにやってる?どこか読み落としてないかい
388 Name: 名称未設定 [sage] Date: 2008/03/02(日) 16:34:04 ID: dah6mynL0 Be:
>>385
線が出てこないのか、線は繋げられるけど接続ができないのか、まずそれを書け。
389 Name: 名称未設定 [sage] Date: 2008/03/02(日) 16:41:06 ID: qN7Y669I0 Be:
CoreAnimation についてご助言をお願いします。

プログラミングガイドのレイヤーツリー階層の項目を読むと、
スーパーレイヤにサブレイヤとしてレイヤを追加するという内容が
書いてあります。

ここで疑問に思ったのは、レイヤの順序はどのようになるかということです。
スーパーレイヤより、サブレイヤの方が上層にくることは分かりました。
では、サブレイヤ同士の上下関係はどのように管理するのでしょうか。

また、スーパーレイヤを複数作ることができるかということも疑問です。
つまり、レイヤを作るときは、ただ一つのスーパーレイヤから、どんどん
階層を作っていかなければならないのでしょうか。

よろしくお願いします。
390 Name: 名称未設定 [sage] Date: 2008/03/02(日) 16:50:23 ID: 61s3PQ+i0 Be:
>>386
Instancesタブの中にあるインスタンスしたアイコンの上でやってみたのですが、できないです・・・

>>387
たのしいcocoaプログラミングという本の初めのhelloworldアプリを作っています。
参考書通りにアウトレットとアクションを一個ずつクラスに作成しております。

>>388
線が出てこないです。

391 Name: 名称未設定 [sage] Date: 2008/03/02(日) 18:32:25 ID: 3JYxwU8x0 Be:
絶対ちゃんと参考書読んでないに1票
インスタンス化したNSObjectのクラスを設計したクラスに設定して
ウィンドウにボタンやテキストフィールドとか置けば線はつながるよ
392 Name: 名称未設定 [sage] Date: 2008/03/02(日) 19:41:41 ID: dah6mynL0 Be:
線が出てこないならcontrolキーが壊れてるんじゃね?
393 Name: 名称未設定 [sage] Date: 2008/03/02(日) 19:48:36 ID: ot1nyHJ50 Be:
>コントロールキーを押しながらドラッグする操作ができなくて困ってます。
ってことだから、片手が不自由なのではないだろうか?

システム環境設定のユニバーサルアクセスのキーボードで複合キーを入にしてください。
これで、コントロールキーを押したあとドラッグすればControl+ドラッグの動作になります。
394 Name: 名称未設定 [sage] Date: 2008/03/02(日) 20:06:19 ID: lT2ZRyse0 Be:
>>390
cmdキーとctrlキー押し間違ってるとか

>>389
>ここで疑問に思ったのは、レイヤの順序はどのようになるかということです。
>スーパーレイヤより、サブレイヤの方が上層にくることは分かりました。
>では、サブレイヤ同士の上下関係はどのように管理するのでしょうか。
CALayerにあるzPositionってやつじゃない?
395 Name: 名称未設定 [sage] Date: 2008/03/02(日) 20:07:02 ID: 3JYxwU8x0 Be:
右クリックでドラッグすれば良し
396 Name: 名称未設定 [sage] Date: 2008/03/02(日) 20:13:10 ID: 61s3PQ+i0 Be:
385です。
マウスとキーボードの設定のキーボードの修飾キーで、controlキーにcommandを割り当てていました・・・。
そのためにコントロールキーを押しながらドラッグというのができませんでした。
レスをしてくれた方大変助かりました。
お騒がせしてごめんなさい。
397 Name: 名称未設定 [sage] Date: 2008/03/02(日) 20:48:18 ID: dah6mynL0 Be:
ちゃんちゃん
398 Name: 名称未設定 [sage] Date: 2008/03/03(月) 00:01:28 ID: CLptj8Qv0 Be:
あるメソッドをAのクラスに書くか、Bのクラスに書いてAから繋いで呼ぶか、
(もちろんBでも使う)悩ましいのですが、こういう時の指針って何かあるのでしょうか。
399 Name: 名称未設定 [sage] Date: 2008/03/03(月) 00:08:29 ID: omK0f3mt0 Be:
やりやすければ適当でいいんじゃない?
後で拡張するときに楽になる方を選べば。
400 Name: 名称未設定 [sage] Date: 2008/03/03(月) 00:13:37 ID: 67uA4yRu0 Be:
一番関係あるクラスに書く
401 Name: 名称未設定 [sage] Date: 2008/03/03(月) 00:17:01 ID: Qmzt7GH20 Be:
人それぞれだよね。
可読性と保守性があって、MVCがきちんと分離されていれば、
あとは適当に機能のまとまりでクラスにすればいいと思う。
402 Name: 名称未設定 [sage] Date: 2008/03/03(月) 00:34:06 ID: IyX+GfuA0 Be:
こういうのは実例をあげないと正解的なものは答えようがないかもね。
403 Name: 名称未設定 [sage] Date: 2008/03/04(火) 07:31:35 ID: cd3Ueok20 Be:
マウスオーバー時に出る黄色い矩形のテキストを出す方法ってcocoaで用意されています?
探しても全然見つからないんで自分で作るしかないんでしょうか...
404 Name: 名称未設定 [sage] Date: 2008/03/04(火) 07:47:59 ID: 483en0hZ0 Be:
- (void)setToolTip:(NSString *)string
405 Name: 名称未設定 [sage] Date: 2008/03/04(火) 08:52:43 ID: mzfgZERp0 Be:
>>403
IB > Identity Inspector > Tool Tip
406 Name: 403 [sage] Date: 2008/03/04(火) 09:30:50 ID: 2TCXuN/70 Be:
>>404,405
お二方ともにありがとう!
ID変わってるでしょうが403です。
ToolTipという名前が出てきませんでした。お恥ずかしい。
407 Name: 名称未設定 [sage] Date: 2008/03/04(火) 14:50:14 ID: S7wqDV1Y0 Be:
質問です。
画像のサムネイル表示を作るにはNSCell使って自分で作っていく
しかないのでしょうか?

動作としてはFinderのアイコン表示みたいな感じで
選択された画像はハイライト、ドラッグしたりして複数選択する。
って感じなんですが。

ネットで調べてみると、
10.5にはそれっぽいコントロールがあるけど、動作環境が10.4ため
使えず、NSTableViewだと各セルの選択方法が分からず断念しました。
Finderのアイコン表示ってCarbonでゴリゴリ書いてるんだろうか・・・。
408 Name: 名称未設定 [sage] Date: 2008/03/04(火) 15:22:38 ID: OV6PaGCF0 Be:
Finderは知らんが、NStableViewだとセル表示が行われる時に呼び出されるメソッドがある。
(void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(int)row
409 Name: 名称未設定 [sage] Date: 2008/03/04(火) 15:41:42 ID: hB9Picwm0 Be:
Finderのアイコン表示みたいなのを作りたいなら
UKDistributedView
ttp://www.zathras.de/angelweb/sourcecode.htm#UKDistributedView
ってのが使えそうだけど。使ったことはないので詳細はわからん。
410 Name: 名称未設定 [] Date: 2008/03/04(火) 20:20:46 ID: +SnoCDKI0 Be:
>>409
407じゃないがいただいた
サードパーティのフレームワーク一覧にサイトとか無いのかなぁ
411 Name: 名称未設定 [sage] Date: 2008/03/04(火) 20:21:11 ID: +SnoCDKI0 Be:
>>410
訂正
に→にした
412 Name: 名称未設定 [sage] Date: 2008/03/04(火) 20:36:59 ID: Sykmwb7I0 Be:
仕事で作ったことないから分からないんですが
よそのフレームワークを使うのって結構普通なんですか?
413 Name: 名称未設定 [sage] Date: 2008/03/04(火) 20:57:33 ID: Sykmwb7I0 Be:
よその、とはサードパーティのことです
414 Name: 名称未設定 [sage] Date: 2008/03/04(火) 22:47:39 ID: JSV4VSBTO Be:
ライセンス的に問題なければ。
415 Name: 名称未設定 [sage] Date: 2008/03/05(水) 18:39:45 ID: tt+EJr5w0 Be:
ネットのサンプルプロジェクトでたまにフレームワークとか
パレットがリンク切れで開けないのは、そういうことか。
416 Name: 名称未設定 [sage] Date: 2008/03/05(水) 20:35:25 ID: t0K2sayU0 Be:
Macプログラミング勉強中ですが、
ttp://www.nicovideo.jp/watch/sm1770546
を見て、似たようなものを作ってみたくなりました。

AppKitにはNSAnimationがありますし、Core Animationもあります。
(このあたりですでに勘違いしている可能性もありますが...)
どのように作るのがのが良いのでしょうか。10.5限定で良いです。

ちなみに私のレベルは、
・C言語は理解している
・AppleのCocoaセミナーを資料を見て一通りやった。
・旧版の萩原本を一通り読んだ(サンプルもほぼ一通り作った)。
・Cocoaはやっぱり!を一通りやった。

よろしくお願いします。
417 Name: 名称未設定 [sage] Date: 2008/03/05(水) 20:55:37 ID: 7i/6IWuN0 Be:
こういうアプリは数学とかの考え方が必要になりそうだな。
いきなり作るのもありだが、まずは普通のGUIアプリから作ったらどうだろうか。
418 Name: 名称未設定 [sage] Date: 2008/03/05(水) 21:05:18 ID: 7eImP8LF0 Be:
>>416
69 名前: 名称未設定 Mail: sage 投稿日: 2008/02/11(月) 22:39:51 ID: my5MjNWk0
こんなん見つけた。初心者でCocoaSeminar初級やってみたけど、
Xcode3.0と操作方法が違っててわかりません><な人向け。

Macでプログラムしよう!
ttp://www.nicovideo.jp/watch/sm1859014
419 Name: 名称未設定 [sage] Date: 2008/03/05(水) 22:03:52 ID: LKSr6PdH0 Be:
昨年あたりからちまちまとCocoaをはじめて、ようやく自分の思い通りの
アプリを書けるようになってきた。

Cocoaは一年すぎたあたりから面白くなってくるね。
420 Name: 名称未設定 [sage] Date: 2008/03/05(水) 22:40:29 ID: vzEZ3cLM0 Be:
>>417
数学というか物理というか。どういうアルゴリズムで時間発展させるかが重要かと。
すごく真面目にやるなら運動方程式を数値的に解くんだけど、
もっと楽なアリゴリズムもありそう。

描画はCore Animationで沢山レイヤーを使うとか? でも素朴にNSBezierPathで
四角や線を描くのも勉強になるかも。
421 Name: 名称未設定 [sage] Date: 2008/03/06(木) 07:05:27 ID: DcFGi36n0 Be:
>>416です。
お返事ありがとうございます。

>>417
確かに、書籍のサンプル以外ほとんど自分で作ったことないです。
沢山アプリ作ったり、リファレンス読んだり、そういった慣れもまず必要でしょうね。

>>418
>>416の動画はそこから辿っていったものですが、Xcode3の使い方はだいたい分かって
いたのでスルーしていまいした。すごく参考になりそうです。

>>420
ブロックの動き自体は、はね回って近くの相手に向かって方向を変えるくらいなら
そんなに難しくないのかなと思っています。

ブロックを動かすのに、NSBezierPathで描いて消してを繰り返すのか、何かのアニ
メーション機能を使うのが良いのか...。
422 Name: 名称未設定 [sage] Date: 2008/03/06(木) 09:11:35 ID: OX9pwPIp0 Be:
>>421
>ブロックの動き自体は、はね回って近くの相手に向かって方向を変えるくらいなら
>そんなに難しくないのかなと思っています。

まあ、それっぽく見えればいいだけだろうだから、てきとーにやればいいんだけどさ。
それでも、「それっぽく見える」にはある程度物理的なことも知っておく必要があるかも。

...と思うのは自分にはなまじ物理の経験があるからかもしれないけどな。
ま、とにかく何か作ってみればわかるでしょう。
いやー、ああいうのを見てると、エネルギーとか角運動量とか重心とか気になっちゃうん
だよねー。あれは散逸系かな、みたいな。
423 Name: 名称未設定 [sage] Date: 2008/03/06(木) 10:22:01 ID: yTfeRDc50 Be:
boidでググったら
ttp://tpot.jpn.ph/t-pot/program/101_boid1/index.html
424 Name: 名称未設定 [sage] Date: 2008/03/06(木) 11:44:20 ID: ClqeEsY50 Be:
アルゴリズムじゃなくて描画の手段を尋ねてるんじゃないの?

NSBezierPath だと動画の最後くらいたくさん描画すると重くなる。
俺なら OpenGL を使う。
425 Name: 名称未設定 [sage] Date: 2008/03/06(木) 11:59:59 ID: dO5xM4VY0 Be:
>>424
おっしゃるとおりです。
OpenGLですか。ネットで探すと色々と情報転がってますね。
ちょっと勉強してみます。

>>423
お、バウンディングよりおもしろそうです。
426 Name: 名称未設定 [sage] Date: 2008/03/06(木) 12:01:37 ID: yTfeRDc50 Be:
Cocoaスレであれだけと、俺ならSDL(CocoaはGUI限定)かな...
427 Name: 名称未設定 [sage] Date: 2008/03/06(木) 12:44:18 ID: w1g9foQc0 Be:
ガベージコレクションを有効にすると、static 宣言してない変数でも、
クラス内で共有できるようになったのですが、static宣言はちゃんとやったほうが
良いのでしょうか?
428 Name: 名称未設定 [sage] Date: 2008/03/06(木) 13:48:07 ID: wqpBXVPH0 Be:
Obj-C にクラス static 変数なんてあったっけ ???
429 Name: 名称未設定 [sage] Date: 2008/03/06(木) 16:19:07 ID: GL44wYwb0 Be:
>>424
>アルゴリズムじゃなくて描画の手段を尋ねてるんじゃないの?

>>420 で CA はどうかとちらっと書いた。
試しにすごく簡単なアニメーションをでっち上げてみたが、やっぱ CA いいかも。
ゴリゴリとアニメーションに必要な処理を書かなくていいしね。それにレイヤー増やしても
ほとんど重くならない。

で、こんなのはお膳立てされた API を使うだけなんで、
自分的には時間発展のアルゴリズムの方に興味が行ってたのだった。
430 Name: 名称未設定 [sage] Date: 2008/03/06(木) 16:35:37 ID: dO5xM4VY0 Be:
>>429
度々どうも。
OpenGLで四角の移動を描いてみました。Cocoaの勉強も兼ねているので、Core
Animation ももう少しいじってみて、どれで行くか考えたいと思います。

ちなみに、CAは
ttp://journal.mycom.co.jp/special/2007/coreanimation/index.html
を見てやってみましたが、何故か地球のイメージが真っ白に....サンプルをダウン
ロードして試してみても同じでした。
431 Name: 名称未設定 [sage] Date: 2008/03/06(木) 17:38:06 ID: w1g9foQc0 Be:
CoreAnimationなんてそんなに難しくないんだから、サンプル
が動かないなんて言わないで自分で一から作った方が早い罠。
432 Name: 名称未設定 [sage] Date: 2008/03/06(木) 17:41:41 ID: dO5xM4VY0 Be:
>>431
難しいか簡単かも分からない状況ですw
和訳ガイドがあるのでとりあえずそれも読んでみます。
433 Name: 名称未設定 [sage] Date: 2008/03/06(木) 18:44:42 ID: BLGOYNAq0 Be:
Core Animationって始点と終点がわからない動きは難しいと思うんだけど
434 Name: 名称未設定 [sage] Date: 2008/03/07(金) 00:27:58 ID: aYCTFrpT0 Be:
>>433
たとえばどんな?
435 Name: 名称未設定 [sage] Date: 2008/03/07(金) 00:39:44 ID: E3qtBVd20 Be:
>>434
416みたいなやつ。途中で他のものが干渉する動きは難しいと
436 Name: 名称未設定 [sage] Date: 2008/03/07(金) 04:28:42 ID: Cy1QALny0 Be:
Core Animationは、新しい命令出すと前の動作が途中でもそこから次に向かってくれるよ。
プログラマが途中の処理を書く必要ない。

iPhone SDK free。Xcode+IB。Cocoa。
$99でiTunesから売れる。Developerの取り分は70%。freeもOK。
from todayだけどbeta。
437 Name: 名称未設定 [sage] Date: 2008/03/07(金) 04:37:14 ID: 0QNB2HGn0 Be:
http://developer.apple.com/iphone/program/
438 Name: 名称未設定 [sage] Date: 2008/03/07(金) 04:41:56 ID: Cy1QALny0 Be:
重くて開かん...
439 Name: 名称未設定 [sage] Date: 2008/03/07(金) 04:43:07 ID: 0QNB2HGn0 Be:
↑繋がりにくいな。
iFundて何するんだ?
http://www.kpcb.com/initiatives/ifund/index.html
440 Name: 名称未設定 [sage] Date: 2008/03/07(金) 10:38:38 ID: 6pB8sYlc0 Be:
>>437
これの影響か、
http://developer.apple.com/jp/documentation/
以下のページは全部404になってますね。
まさかホントにファイルがない訳ではないとは思うが。
441 Name: 名称未設定 [sage] Date: 2008/03/07(金) 11:27:25 ID: gbj3Egm+0 Be:
IBでウィンドウを作ってそれようのNSWindowControllerのサブクラスを作った場合
これはFile's Ownerに結びつけるのと新規にNSObjectをNibファイルに作ってそれに
結びつけるのとどっちがいいんでしょうか?

サンプルとか見てると両方のパターンがあるみたいで場合分けの考え方が分からない
のですが...?
442 Name: 名称未設定 [sage] Date: 2008/03/07(金) 12:00:36 ID: vhkbt9ap0 Be:
繋がったよ
2.1GB!
だがダウンロードは遅くない
443 Name: 名称未設定 [sage] Date: 2008/03/07(金) 12:09:47 ID: 5LaZ8yUF0 Be:
600MB あたりで止まった。

web でドキュメントはよめるようになったよ。
http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/
444 Name: 名称未設定 [sage] Date: 2008/03/07(金) 12:26:10 ID: 5LaZ8yUF0 Be:
ADC on iTunes にビデオも一杯出てる。Online 会員で見れるよ
445 Name: 名称未設定 [sage] Date: 2008/03/07(金) 13:34:45 ID: vhkbt9ap0 Be:
インスコ完了
iPhoneシムおもすれ~
けど、くぱぁはどうすんだ?
446 Name: 名称未設定 [sage] Date: 2008/03/07(金) 13:42:52 ID: 5LaZ8yUF0 Be:
何回やっても 600MB あたりでとまります(涙)
プロバイダにとめられてるのかな?
447 Name: 名称未設定 [sage] Date: 2008/03/07(金) 14:27:10 ID: vhkbt9ap0 Be:
オーガナイザでtouchに自作アプリ入れようとすると34のエラーになるのはなんでだ?
設定が足らんのか、まだ入れちゃダメなのか・・
448 Name: 名称未設定 [sage] Date: 2008/03/07(金) 14:46:52 ID: 5LaZ8yUF0 Be:
ファームウェア v2 が出ないと無理なんでは?
449 Name: 名称未設定 [sage] Date: 2008/03/07(金) 14:49:44 ID: vhkbt9ap0 Be:
そかそか、そりゃそうだわな
450 Name: 名称未設定 [sage] Date: 2008/03/07(金) 16:58:13 ID: +j3cJoBu0 Be:
>>447
ttp://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/DevelopmentEnvironmentOverview/chapter_4_section_5.html#//apple_ref/doc/uid/TP40007072-CH5-SW14

Designating a Device for Development
の手順を踏まないとダメなんじゃないか?この手順が通称のjail brakeにあたる
気がする。で、この手順を踏むにはCertificateが必要で、このCertificateは
$99のデベロッパ登録が必要で、それはまだ日本からはやってくれないと、、、

451 Name: 名称未設定 [sage] Date: 2008/03/07(金) 17:15:37 ID: x/MNsQEt0 Be:
>>450
同じとこ見てた。
ここで言う、CSRファイルをうpするところがiPhoneDevCenterで
みつけられなくて途方に暮れていたんだが。$99のメンバーシップ持ってないと
駄目っつーことなのか。
452 Name: 名称未設定 [sage] Date: 2008/03/07(金) 23:01:25 ID: aYCTFrpT0 Be:
質問させてください。

NSPoint から x 座標だけを int 型で取り出すには、
どうしたらいいのでしょうか。

あと、NSPoint とかは「関数」ですよね?
どうしてメソッドと関数が別々に存在するのか、よく分かりません('A`)

よろしくお願いします。
453 Name: 名称未設定 [sage] Date: 2008/03/07(金) 23:05:28 ID: rpprbSl10 Be:
>>452
まずはCを覚えて下さい

NSPointは構造体
キャストすりゃintで取れる

ググり方はわかるだろ?
454 Name: 名称未設定 [sage] Date: 2008/03/07(金) 23:16:22 ID: aYCTFrpT0 Be:
Cの知識が中途半端なままCocoaやってるのがいけないですね。 
構造体、キャストについては詳しく調べます。
ありがとうございました。
455 Name: 名称未設定 [sage] Date: 2008/03/07(金) 23:44:19 ID: xpaY/lvn0 Be:
Objective-CをやるためにCを熟知する必要も無いけど
ここまで分かってない人には、ちと厳しい。
456 Name: 名称未設定 [sage] Date: 2008/03/08(土) 01:44:56 ID: 1GYGgbzP0 Be:
たった一行ですむところをグダグダ駄レス垂れて人を寄せ付けないのがMacクオリティ
457 Name: 名称未設定 [sage] Date: 2008/03/08(土) 03:10:38 ID: 7oU8e6yS0 Be:
>>456
.NET(笑)でもやってろよ
458 Name: 名称未設定 [sage] Date: 2008/03/08(土) 05:47:15 ID: GTeywC3/0 Be:
>>456は煽り口調だけど実際問題門は狭いと感じる
単純に情報量が少ないのもあるけど
ド素人が気軽に質問できる場ってのがほとんどないんだよなあ
459 Name: 名称未設定 [sage] Date: 2008/03/08(土) 06:01:05 ID: TjnYWOuM0 Be:
まーたしかに、無いね
460 Name: 名称未設定 [sage] Date: 2008/03/08(土) 10:23:18 ID: EfFWQU2+0 Be:
Core Data のアプリで(document based じゃない方)、あるデータのエンティエィ
(Dataとします) があって、関連として
・mainData(to-many)
・subData(to-one)
を持っており、お互い逆関連に設定されています。

あるデータ群に対し、その中の最初の1つだけを mainData とし、残りはすべて
その mainData の subData として設定しながら、Core Data のエンティティを
作成していくメソッドとして、以下のようなものを書きました。

- 続く
461 Name: 460 [sage] Date: 2008/03/08(土) 10:24:21 ID: EfFWQU2+0 Be:
- 続き


- (void) createAndSetMainData: (NSArray *) myDataArray
{
MyDataType * myData; // "Data" managed object (MO) にセットしたいデータが入ってる
NSManagedObject * mainDataMO == nil; // 最初は nil

for ( myData in myDataArray )
{
NSManagedObject * newDataMO = [self createADataMOAndFillMyData: myData];
// managed object を作成して myData 内のデータをセット

if ( mainDataMO == nil ) // nil なら最初のデータ → mainData
{
mainDataMO = newDataMO;
}
else // subData
{
[newDataMO setValue mainDataMO forKey: @"mainData"]; // 問題の行
}
}
}


- 続く
462 Name: 460 [sage] Date: 2008/03/08(土) 10:24:57 ID: EfFWQU2+0 Be:
- 続き

これで思い通りに動いたのですが、一度データをファイルにセーブして
(NSSQLiteStoreType)、次にアプリを立ち上げると uncaught exception で
立ち上げと同時にクラッシュします。

// 問題の行 のところをコメントアウトするとクラッシュしなくはなりますが、
当然、subData 群に mainData が設定されません。

セーブしなければ問題なく動いているのですが、// 問題の行 のところは、
何が良くないでしょうか。


長文すみません
463 Name: 名称未設定 [sage] Date: 2008/03/08(土) 16:00:18 ID: VHM+i6Ve0 Be:
亀レスで申し訳ないですが>>407です。
>>408 >>409 サンクス。
特に
ttp://www.zathras.de/angelweb/sourcecode.htm#UKDistributedView
はかなり使えた。

にしてもみんなどうやってこんなサイト見つけてるんだろ。
クラス名でググってもヒット数3件とかでて困る。
464 Name: 名称未設定 [sage] Date: 2008/03/08(土) 16:36:53 ID: HDUoXXFz0 Be:
>>460
何がいけないのか解りませんが
NSMutableSet *subData = [mainDataMO mutableSetValueForKey:@"subData"];
[subData addObject:newDataMO];
としてもエラーが出ますか?

それから、文脈からしてone-to-many relationshipなのは
subDataの方ですよね。
465 Name: 460 [sage] Date: 2008/03/08(土) 17:26:31 ID: EfFWQU2+0 Be:
>>464

> NSMutableSet *subData = [mainDataMO mutableSetValueForKey:@"subData"];
> [subData addObject:newDataMO];

上記でも同じでした。

[newDataMO setValue mainDataMO forKey: @"mainData"];

だけでもダメ、上記2行もダメ、両方書いて3行でもダメです。
セーブしなければ問題ないのですが、SQLite でセーブする前と後で、
何が変わるのでしょうか。

> それから、文脈からしてone-to-many relationshipなのは
> subDataの方ですよね。

その通りです。すみません、わかりにくい書き方でした。
mainData 1つに対して、subData が複数です。
466 Name: 名称未設定 [sage] Date: 2008/03/08(土) 18:14:09 ID: HDUoXXFz0 Be:
>>465
464です
このようなrelationshipはoutlineViewのデータでよく使用していますが、
(parent, children)
こんなトラブルは経験がありません。
他の原因があるのではないでしょうか?
467 Name: 名称未設定 [sage] Date: 2008/03/08(土) 23:23:00 ID: Io0PEr3a0 Be:
NSTableViewでcellがCheck Box Cellの時、
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row;
では何を返せば、Check BoxのTitleを変更できるでしょうか?
Selectedしか変更できない。
468 Name: 名称未設定 [sage] Date: 2008/03/08(土) 23:25:26 ID: IW0HY8f30 Be:
>>467
dataSource がダメならデリゲートで、
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex

で aCell の title を変更してみては。
469 Name: 名称未設定 [sage] Date: 2008/03/09(日) 01:59:08 ID: GY3Lgh9g0 Be:
>>461
>NSManagedObject * mainDataMO == nil; // 最初は nil
==だからじゃねーかな。
470 Name: 名称未設定 [sage] Date: 2008/03/09(日) 14:31:34 ID: DQPknXlz0 Be:
>>467
私がやってるのは
[tableColumn dataCell]でCellを拾ってきて
Titleを書き換えてるようです。
(初学者なんで正攻法かどうか分かりません)
471 Name: 460 [sage] Date: 2008/03/09(日) 14:42:41 ID: Cu0DF2Ru0 Be:
>>469
すみません、ここにポストするときに書き損ねました。
ソースでは = になってます。

>>466
クラッシュさせているのは、このデータが NSArrayController 経由で
バインディングされている NSTableView のようなのですが、
よくわからないのは、データをセーブする前までは何ともないころです。

セーブ前とセーブ後で何かの状態が変わっているのだと思いますが、
セーブまわりは Core Data が自動的にやっている部分なので
何が起きているのか掴めません。
472 Name: 名称未設定 [sage] Date: 2008/03/09(日) 17:41:30 ID: GY3Lgh9g0 Be:
>>471
ライブラリのApplication Supportフォルダにセーブデータが
あるからテキストエディタで開いて確認してみたら?
属性に一時を設定して保存されていないとかでは。
473 Name: 名称未設定 [sage] Date: 2008/03/09(日) 21:08:06 ID: /Qh7Fzc50 Be:
>>471
484です
お話から類推するにcontextには問題なくて、
persistentStoreCoordinatorに問題があるのでしょう

SQLiteをxmlに変更してどうなるか見てみてはどうでしょうか?
474 Name: 名称未設定 [sage] Date: 2008/03/09(日) 23:50:36 ID: EUKVyO1y0 Be:
クラス内でデータを保存しておきたくて、インスタンス変数を作ってそこに格納しました。
しかし、その変数にアクセスするためにインスタンスメソッドを呼ぶと、当たり前ですが初期化と
同時に変数のデータがリセットされてしまいました。
そこで、クラスメソッドにしてみましたが、これも当たり前ですがインスタンス変数には
アクセスできません。

アップルのObjective-Cのドキュメントを参照すると、
"インスタンス変数に対応する「クラス変数」はありません(中略)
クラスのすべてのインスタンスがデータを共有するには、何らかの外部変数が必要になります。"

とありますが、「何らかの外部変数」とはいったいどういう意味なのでしょうか。
static は推奨されないと書いてありました。

475 Name: 名称未設定 [sage] Date: 2008/03/10(月) 00:31:42 ID: 7PSG2vmy0 Be:
>>474
ドキュメントに書いて有る通り,クラスの外に変数が必要ということでしょ?
C++ の static メンバ変数とごっちゃにしてませんか?
C++ を理解しているなら Singleton を作って共有データを保持しとけば良いだけ.
476 Name: 名称未設定 [sage] Date: 2008/03/10(月) 14:28:25 ID: DECUaAlT0 Be:
質問させて下さい

NSButtonCell のサブクラス MyButtonCell と、NSButton の サブクラス MyButton
からカスタムのボタンを作成しています。

MyButton のインスタンスを sizeToFIt した時に独自の大きさにしたいと考えています。
MyButton で sizeToFIt をオーバライドしてもいいのでしょうが、 MyButtonCell の何らかの
サイズ計算メソッドをオーバライドするのがより正しい方法と考えています。
MyButtonCell クラスで

- (NSRect)imageRectForBounds:(NSRect)theRect;
- (NSRect)titleRectForBounds:(NSRect)theRect;
- (NSRect)drawingRectForBounds:(NSRect)theRect;
- (NSSize)cellSize;
- (NSSize)cellSizeForBounds:(NSRect)aRect;

これらをオーバライドし、NSButtonCellとは異なる値を返してみたのですが、sizeToFIt の
結果にはまったく影響しませんでした。どのようにすべきでしょう?
477 Name: 名称未設定 [sage] Date: 2008/03/10(月) 14:29:51 ID: DECUaAlT0 Be:
× オーバライド
◯ オーバーライド
478 Name: 名称未設定 [sage] Date: 2008/03/10(月) 14:50:48 ID: DECUaAlT0 Be:
自己解決しましたです
(なんか最近2chで質問してしばらくすると自己解決する事が多いな・・・粘りが足りん)

上の方法でいいようです。
cellSize または cellSizeForBounds をオーバーライドすれば、sizeToFIt に影響してました。
MyButton をさらにサブクラス化していて、そこでの sizeToFIt のオーバーライドが
邪魔をしていただけでした。
479 Name: 名称未設定 [sage] Date: 2008/03/10(月) 15:16:14 ID: NskRVeOH0 Be:
>>478
告白デバッグというやつだな。
480 Name: 名称未設定 [sage] Date: 2008/03/10(月) 15:16:15 ID: PooR7Pns0 Be:
>>477
英語の発音をカタカナで書くのに間違いも正しいも無いだろう
481 Name: 名称未設定 [sage] Date: 2008/03/10(月) 15:48:26 ID: 48DvrBUu0 Be:
>>479
有言実行、かな。
482 Name: 名称未設定 [sage] Date: 2008/03/10(月) 19:34:39 ID: GSP6fbie0 Be:
iPhoneSDKリリースでこのスレもさっぱりな人が大量発生の予感。
483 Name: 名称未設定 [sage] Date: 2008/03/10(月) 20:43:42 ID: sqcI9fDe0 Be:
本当にさっぱりな人は、iPhone SDKって何?へぇそんなのもあるんだね
程度でここまで来ないと思われ。
少なくともCocoaってキーワードで検索しないんじゃね?
484 Name: 名称未設定 [sage] Date: 2008/03/10(月) 20:59:40 ID: zuzCNJpg0 Be:
あらゆるものをiPhoneに移植しろと要求してくる馬鹿が大量発生するのは間違いない。
485 Name: 名称未設定 [sage] Date: 2008/03/10(月) 22:25:34 ID: SgkU2d620 Be:
Xcode スレのほうが適切なのかもしれないですが、現状 Cocoa しか使っていないので
こちらでお聞きします。iPhone SDK に付属?しているという、Xcode 3.1 を使った方
いらっしゃったら、使用感をお聞かせ願えませんか?
486 Name: 名称未設定 [sage] Date: 2008/03/10(月) 22:26:41 ID: 8HoClUUJ0 Be:
>>474
>static は推奨されないと書いてありました。
すいませんがこの記述がある場所を教えてください。
487 Name: 474 [sage] Date: 2008/03/10(月) 22:55:29 ID: sqcI9fDe0 Be:
>>475
おっしゃる通り、C++からのスイッチなので、混乱していますorz
もうちょっと研究してみます。

>>486
その記述は、私の誤読でしたorz すみません。
「static として宣言されていない外部変数を使用することもできますが、別々のオブジェクトにデータをカプセル化するには、静的な変数によって有効範囲を限定するほうが有効です」
の解釈を間違えてました。
488 Name: 名称未設定 [sage] Date: 2008/03/10(月) 23:33:28 ID: oJZv+ycP0 Be:
>>485
グッと来る使用感になった。今すぐインストールするべき。
489 Name: 名称未設定 [sage] Date: 2008/03/10(月) 23:36:50 ID: EUWBMSva0 Be:
>>485
3.1の新規プロジェクトとか見た目変わり過ぎワロタw
仕事で使ってる人には余計なストレスになるのでおすすめしない
490 Name: 名称未設定 [sage] Date: 2008/03/10(月) 23:39:26 ID: EUWBMSva0 Be:
MightyMouseの下スクロールがきかなくなってるから
アイコン表示マジでイライラする
491 Name: 名称未設定 [sage] Date: 2008/03/11(火) 00:24:00 ID: 4wLW+73S0 Be:
>>488, 489
グッとくる使用感、ってどんなんですかw ゴテゴテした感じという事でしょうかね?
サブマシンに入れていじってみよう。どうもありがとうございました。
492 Name: 名称未設定 [sage] Date: 2008/03/11(火) 00:40:00 ID: aQJCgUjF0 Be:
>>491
Release Note によると、3.0 を残したままでインストールすることも可能。

The default location for Xcode Developer Tools is /Developer. However, you
may install Xcode 3.1 on any volume in any location, and you can move or
rename the entire Developer directory after installation. The only
restriction is that the directory names of its subdirectories must not be
changed, nor moved within the developer directory; but the Developer
directory itself may be renamed and placed in any other directory or
volume, including servers and external drives.

This allows you to have multiple versions of Xcode tools installed on the
same system but running independently. The Xcode IDE will use the SDKs,
build tools, and auxiliary applications from the Developer directory it is
launched from whenever possible, rather than those from the root
system. To refer to those files in your own projects, use the new Relative
to Xcode Folder reference style, whose root path is $(DEVELOPER_DIR).


「新規」系メニューの改悪さえなければいい出来だと思うんだが…
493 Name: 名称未設定 [sage] Date: 2008/03/11(火) 00:48:53 ID: 4wLW+73S0 Be:
>>492
わぁ、どうもありがとうございます。共存可能なら、メインに入れるか…
494 Name: 名称未設定 [sage] Date: 2008/03/11(火) 01:46:20 ID: Vh8rC2V30 Be:
え?3.1 ってMac用のCocoaアプリの開発にも
使えるってこと?
iPhoneとMacのXcodeって別物だと思ってた('A`)
495 Name: 名称未設定 [sage] Date: 2008/03/11(火) 02:23:09 ID: EDetKQjU0 Be:
>>494
デフォルトのインストール先に入れると上書きされちゃうんじゃなかったかしら
ちなみにはっきりと「β」って書いてあるから仕事で使ってる人は別インストールを推奨
496 Name: 名称未設定 [sage] Date: 2008/03/11(火) 03:19:44 ID: Ib5Wef5y0 Be:
ちょっとだれかさー作ってもらいたいものがあるんだけど
・ファインダーウィンドウのアイコン表示時(のみ)にアイコンとアイコンの
 スペースをダブルクリックすると、上(親ディレクトリ)の階層へ
・ファインダーウィンドウのタイトルをデフォルトでコマンドクリック
 (階層が表示される)
・windowsと同じようにバックスペース(delete キー)で上の階層へ

GPLで
あ、儲けたい人は儲けてどうぞ、需要の方は知りませんが
お願いします。
497 Name: 名称未設定 [sage] Date: 2008/03/11(火) 08:31:02 ID: I553ZzBY0 Be:
>>494
XCode がかなり拡張されて、いろんな cpu に対して開発できるようになっただけだよ
かなり嘘だけど、64bit/32bit/ppc/intel だけじゃなくて、
iPhone 用にもコンパイルできるようになっただけだと思えばいいです

>>496
ふたつめは右クリックすればいいのでは?
ひとつめとみっつめは Unsanity が APE のレパード版を完成させれば
すぐできるはず。
498 Name: 名称未設定 [sage] Date: 2008/03/11(火) 08:36:33 ID: I553ZzBY0 Be:
あと、階層行き来するのならカラムビューでいいのではと
個人的におもうんですが。
表示→パスバーを表示、でフルパスも下に表示できるし。
499 Name: 名称未設定 [sage] Date: 2008/03/11(火) 15:17:26 ID: /IYxitYz0 Be:
iPhoneSDKやXcode3.1にはNDAがあるから
詳細を書いてはいけない希ガス
500 Name: 名称未設定 [sage] Date: 2008/03/11(火) 18:27:29 ID: f8z1vQQ+0 Be:
Core Animation プログラミングガイド
ttp://developer.apple.com/jp/Documentation/Cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html
サンプルのCore Animation Menuアプリケーション、ちょこちょこと手直しが必要なため
動かすのに苦労した。
動いたときはちょっとうれしかったので、プロジェクトをアップしときます。
ほしい人はどうぞ。
ttp://homepage2.nifty.com/pluto/CA_Menu.zip
501 Name: 名称未設定 [sage] Date: 2008/03/11(火) 19:59:06 ID: Vh8rC2V30 Be:
>>500
もらった。ありがとう!!
502 Name: 名称未設定 [sage] Date: 2008/03/11(火) 21:22:53 ID: CejYYiPS0 Be:
>>500
プロジェクトファイルをあげる時はビルドファイルを消した方がいいよ
まぁ光回線の世の中じゃあんま関係ないか

3.1の変更メモ(NDAに抵触しないよな?)
3.1でプロジェクトを作った時、StandardAboutPanelに作成者の名前が記載されない(アプリのアイコンと名称とバージョンのみ記載)
従来通りにするにはInfoPlist.stringsに
NSHumanReadableCopyright = " 文字列";
を自分で追加してやる必要がある。
503 Name: 名称未設定 [sage] Date: 2008/03/11(火) 21:42:28 ID: 7VENjfAw0 Be:
>>500

すげーな。これだけしか書かなくても動くのか。
504 Name: 名称未設定 [sage] Date: 2008/03/11(火) 22:09:50 ID: wD84fN+S0 Be:
>>500
THANX
これだけで動くのか、すげ~な。
505 Name: 名称未設定 [sage] Date: 2008/03/11(火) 22:30:49 ID: TfmSl3dE0 Be:
>>502
ターゲットのクリーニングだけじゃだめなんですね。
アップし直しました。
506 Name: 名称未設定 [sage] Date: 2008/03/11(火) 22:40:00 ID: TfmSl3dE0 Be:
>>500です。
背景はQuartz Composerのファイルなのでプログラムコードは書いていません。
ADCにあるCocoa Slideというサンプルから拝借したものです。
Coer AnimationはおろかCocoa自体勉強中なので、これだけで動くという
事がぴんと来ないですw
507 Name: 名称未設定 [sage] Date: 2008/03/11(火) 22:56:33 ID: RBLAmCn20 Be:
あるある
508 Name: 名称未設定 [sage] Date: 2008/03/11(火) 23:35:52 ID: I553ZzBY0 Be:
GC つかうと更に短くなる希ガス
509 Name: sage [] Date: 2008/03/12(水) 09:01:59 ID: nqBscnd/O Be:
NSScrollview内のコントロール(NSTextField)がアクティブになったタイミング
で、
自動的にそのコントロールが見えるようにスクロールさせる方法ってありますか?

実現させたいのは、以下のようなことです。
・NSScrollView内にNSTextFieldを5個置く。(名前はtextField#1,2,...とします)
 (このとき、一番下のTextField textField#5はNSScrollViewのスクロールバーを
動かさないと見えない位置にあります。)
・textField#1~#5の順でtabキー遷移ができるように、nextKeyViewで接続する。
・アプリ実行後、textField#1をアクティブ(Iカーソルがあって編集できる状態)に
して、tabキーを数回押す。
・tabキーを押すごとに、 textField#1~#5へと遷移する。

ここまではできましたが、以下のことができません。
・textField#5に遷移した段階で、自動的にスクロールが移動して、textField#5が見
えるようにする。

自分で調べたところでは、 autoscroll を使えばよさげな感じ、といったところまで
これたのですが、
それ以降はよくわかりませんでした。
できそうでできない状態で、歯がゆい思いです。orz
ご存じの方がいらっしゃいましたら、どうかご教授願います。


510 Name: 509 [sage] Date: 2008/03/12(水) 09:03:52 ID: nqBscnd/O Be:
orz
511 Name: 名称未設定 [sage] Date: 2008/03/12(水) 09:40:29 ID: Q1HsIWk50 Be:
NSClipViewのScrolToPointで指定した座標までスクロールよ。
512 Name: 名称未設定 [sage] Date: 2008/03/12(水) 11:59:00 ID: 60uy/TBm0 Be:
NSButtonにsetKeyEquivalent:で矢印キー(NSLeftArrowFunctionKey)を設定、
実際に動かしてみると一度キーを押すだけで二度反応してしまうのですが
これは仕様なんでしょうか。
513 Name: 名称未設定 [sage] Date: 2008/03/12(水) 19:45:22 ID: jZeE4+zn0 Be:
>>512
あ、それ俺もなった。
514 Name: 名称未設定 [sage] Date: 2008/03/14(金) 15:04:07 ID: XQZPcYKG0 Be:
質問お願いします。
自作でポップアップするパネルを作りたいんですが、
(2ちゃんねるブラウザのスレ番ポップアップみたいな)
実装方法が分かりません。

タイトルバーのないパネルの作り方を教えてください。
よろしくお願いします。
515 Name: 名称未設定 [sage] Date: 2008/03/14(金) 15:41:07 ID: L3H1Z/+J0 Be:
NSWindow* window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0,0,128,128)
styleMask: NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];

ぐぐれば ToolTipWindow というコードがあるよ。
516 Name: 名称未設定 [sage] Date: 2008/03/14(金) 17:13:03 ID: XQZPcYKG0 Be:
>>515
ありがとうございました。
とりあえずNSWindowとNSPanelのリファレンスは参照したんですが、
見落としていたようです。
517 Name: 名称未設定 [sage] Date: 2008/03/14(金) 18:56:24 ID: 7+f99PMo0 Be:
よく環境設定ウインドウでツールバーから設定カテゴリを選ぶと
項目の量に合わせてウインドウの大きさが変化するようなのがありますが、
あれはそれぞれのNSToolbarItemとかNSTabViewItemのidentifierごとに
コード内でウインドウサイズを決め打ちで保持しているんでしょうか?
518 Name: 名称未設定 [] Date: 2008/03/14(金) 19:37:56 ID: FgGauQ6O0 Be:
>517
"DBPrefsWindowController"でググれ
519 Name: 名称未設定 [sage] Date: 2008/03/14(金) 21:48:20 ID: 7+f99PMo0 Be:
>>518
ありがとうございます。
なかなか面白そうですね、適当に弄ってみます。
520 Name: 名称未設定 [sage] Date: 2008/03/15(土) 00:37:52 ID: dE2MmrEV0 Be:
>>416です
ひとまず、ttp://www.nicovideo.jp/watch/sm1859014 みたいなのを、
Core Animationを使って作って見ました。
ttp://homepage2.nifty.com/pluto/CA_Bounding.zip
200個に制限してありますが、クリックやドラッグでボールを沢山に増や
すと結構気持ち悪いです。ウィンドウはあまり大きくしない方が気持ち
悪いかもしれませんw

が、CAのアニメーション機能は使っていません。わざわざオフにしているくらいです。
別にCAを使わなくても良かったですね。onz

移動アニメーションが終わったタイミングで次の行き先を指定しなければならないけど、
それが分からなければちょっと難しそうです。
もしくは明示的なアニメーションで、開始と停止をコントロールしてやるか。
>>433さんが言うように、この手の動きにはCore Animationは向いていないような気が
してきました。

ちなみに、G4 1.67GHzだと100個くらいで目に見えてもたついてきます。

521 Name: 名称未設定 [sage] Date: 2008/03/15(土) 01:29:29 ID: Ud88XN1T0 Be:
面白いね。銀のiMac 2GHz + Mem3GB + RADEON 2400で200個の状態でもたつきはありません。
522 Name: 名称未設定 [sage] Date: 2008/03/15(土) 11:27:46 ID: Q2wKRYm50 Be:
>>520
確かに気持ち悪いですね。彼女に見せたら寝込んでしまいましたww
ソースですが、ボールクラスを作って自分の位置や形、色を保持しておくとプログラムが綺麗になりますよ。
あと、動きをコントロールするモーションコントローラーも別クラスにしておけば
動きを後から簡単に変更出来るようになります。
523 Name: 名称未設定 [sage] Date: 2008/03/15(土) 13:45:30 ID: pgbuH1CZ0 Be:
SpriteWorldを思い出してしまった。
blitzの高速化のための巨大switch...w
524 Name: 名称未設定 [sage] Date: 2008/03/15(土) 15:52:37 ID: psR/Irvj0 Be:
Cocoaバインディングについて質問させて下さい

NSTableViewとNSArrayControllerをCocoaバインディングするとテキストデータなどの管理・表示が
楽になりますが、扱うデータをアイコン付テキストなどのカスタムデータにすることは可能でしょうか?
通常カスタムデータはNSCellを継承して独自のクラスを作ってdrawInteriorWithFrameをオーバーライド
して描画すると思いますが、これをCocoaバインディングしたNSTableViewから呼ぶ方法はあるでしょうか?
525 Name: 名称未設定 [sage] Date: 2008/03/15(土) 17:06:31 ID: isnlEsRm0 Be:
>>524
アイコン付テキストの場合にはCoreRecipesのように
NSAttributedStringをバインドするのが一番簡単でしょう。

一般的にはバインドできるオブジェクトはひとつだけなので、
アイコンとテキストのように複数のオブジェクトをバインドするには
NSDictionaryとかNSArrayの形でバインドすることになります。

モデルにアクセッサを書いて、NSCellのsetObjectValueを上書きすれば可能となります。
526 Name: 名称未設定 [sage] Date: 2008/03/15(土) 19:01:29 ID: cF4/7CHf0 Be:
CoreData ってものがいまいちつかめないんですが。
モデルにあたる部分のコーディングを楽にするってことは分かるんですが。

たとえばAという配列とBという配列があって、Aの要素を一つBに移動したり、
交換したりといった動作は、コーディングなしでCoreDataで処理することが
できるんでしょうか。
527 Name: 名称未設定 [sage] Date: 2008/03/15(土) 19:08:44 ID: en7em3SU0 Be:
>>524
IBのバインディングだけで完結させたいのか、そもそもNSTableView
のカラムに
アイコンつきテキストを表示させる方法が知りたいのかによりますが、
後者ならデータソースのクラスを作って対象のカラムをカスタムセルにして
処理を記述すればできます。
528 Name: 名称未設定 [sage] Date: 2008/03/15(土) 19:48:13 ID: psR/Irvj0 Be:
>>524です
やりたいことはビットマップとテキストが混在したデータを一覧表示させることです
このデータ自体はディスク上のファイルにあります
このデータを表現する既存の型はないので独自のクラスに読み込んで
そのポインタをNSTableViewに渡して管理したいと思いました
で、管理はフレームワークに任せて描画するときだけ自前の処理で行えば効率的かと思いました
実際Windowsで同じものを作っていて、そこでは描画関数だけを書けば済んでいます

それで最初はいろいろ調べていて、NSCellとNSTableViewの両方をサブクラス化して必要な
メソッドをオーバライドすれば良いらしいと分かりました。しかし、それよりもCocoaバインディング
を使った方がデータの管理は効率的らしく、というかCocoaらしそうだったので>>524を書きました

どうもうまく説明できなくてすいません
その後もいろいろ調べていてこの場合はCocoaバインディング使わない方が手っ取り早いのかなと
思い始めました
529 Name: 名称未設定 [sage] Date: 2008/03/15(土) 20:16:36 ID: dE2MmrEV0 Be:
>>512
200個で平気ですか。アニメーション機能は使っていないので、グラボより
CPUパワーの違いが出るんでしょうね。


>>522
彼女さんは元気になられたでしょうか(^-^;
アドバイスありがとうございます。手直ししてみます。

>>523
それ、どういうやつですか?
530 Name: 名称未設定 [sage] Date: 2008/03/15(土) 21:30:05 ID: Ftzr6OvS0 Be:
>>528
テキストとビットマップを別のカラムに表示するってのじゃ駄目なのか?
531 Name: 名称未設定 [sage] Date: 2008/03/15(土) 21:43:15 ID: psR/Irvj0 Be:
>>530
英単語を発音記号+ストレス符号付文字で表現したようなデータを一覧表示させたいんです
各セルごとに文字とビットマップがランダムに混在したデータが入るのでカラム別にはできないです
CocoaバインディングにこだわらなければNSCellとNSTableViewをサブクラス化すれば
書けそうなので明日その方向で試してみようかと思います
532 Name: 名称未設定 [sage] Date: 2008/03/15(土) 21:50:40 ID: ouakLezg0 Be:
発音記号なら普通に Unicode にあるよ?
ビットマップをつかわないでも文字だけで済むとおもいます。
編集→特殊文字...
を開いてみてみてください。
533 Name: 名称未設定 [sage] Date: 2008/03/15(土) 22:02:23 ID: psR/Irvj0 Be:
>>532
元データが独自にビットマップを持っていてそれに独自のIDが割り振られているので
どのビットマップがどの発音記号に該当するかは1つ1つ目で見て変換テーブルを作らない
とフォントに代替できないんです。また、アクセントの位置を符号化したビットマップとか
文字にはできない記号とかもあるんで...

というか要はアイコン付テキストと同じ考え方でアイコンの出現位置と数がテキスト内で
ランダムになるだけなのでそんなに難しい事ではないはずだと思います。どうもCocoa
バインディングにこだわりすぎて自分の中で難しくしてしまったみたいです
534 Name: 名称未設定 [sage] Date: 2008/03/15(土) 22:32:14 ID: Ftzr6OvS0 Be:
>>533
それなら本質的な問題はNSTableViewのサブクラスで独自のビューを作ることだね。バインディングはその後考えればいい。
535 Name: 名称未設定 [sage] Date: 2008/03/15(土) 22:42:06 ID: ouakLezg0 Be:
>>533
なるほど。

というか画像文字まじりのは NSAttributedString で出来るんでは?
まあ画像の積み上げとかやってるとだめだとおもいますが。
(発音記号の画像の上にアクセント記号の画像をおくとか。)

ただ、できるかぎりはフォントで済む部分は画像でなくてフォントにしたほうが
ソフトの出来上がりが綺麗になるとおもいます。
536 Name: 名称未設定 [] Date: 2008/03/16(日) 00:10:26 ID: 5qNs3rin0 Be:
>>533
とりあえず、NSCellのサブクラスを作り、-[NSCell objectValue]を参照しながら、文字と画像の混じりの描画を行う。
それを、-[NSTableView tableColumnWithIdentifier:@"hoge"]で取得したカラムに、-[NSTableColumn setDataCell:MyCell]とやってセットする。
あとは、テーブルカラムのvalueにバインドしてやれば、NSCellのobjectValueに「文字画像混じりオブジェクト」がセットされる。
という流れになると思うのだが。
537 Name: 名称未設定 [sage] Date: 2008/03/16(日) 06:12:38 ID: nM97Vtir0 Be:
>>520
Core Animation をよく知らないけど、こういう壁で反射するだけの運動なら
壁といつ衝突するかは簡単に計算できる訳だから、それが始点と終点ということではないの?

いずれにせよ Core Animation が使いにくいなら、普通に(?) OpenGL とか?
大抵のOSで動くから、とりあえずサンプルはいろいろありそう。
538 Name: 名称未設定 [sage] Date: 2008/03/16(日) 08:20:14 ID: abTCKw2t0 Be:
>>524です
昨日はたくさんの方からアドバイスいただきありがとうございました
今朝からいろいろ試してみたんですが、>>536さんのやり方でうまくいきそうです
CocoaバインディングしたNSArrayControllerはM-C-VのCにあたるものでMとVの橋渡しをしてくれるもので
Vの描画はデフォルトの動作になるだけなので描画自体はこちら側で自由にカスタマイズして構わないと分かりました
結果的にはAppControllerのawakeFromNibで
NSTableColumn* tableColumn = [myTableView tableColumnWithIdentifier:@"name"];
MyCell* my_cell = [[MyCell alloc] init]; //ガベージコレクションオンなのでautoreleaseはいれない
[tableColumn setDataCell:my_cell];
の3行を加えてやってあとはMyCellの
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView*)controlView
メソッドを書くだけでうまくいきそうです
これなら当初考えていた描画だけは自前でやってデータ管理はフレームワークに任せてコーディング量を減らせることができます
みなさんありがとうございました
539 Name: 名称未設定 [sage] Date: 2008/03/16(日) 08:56:09 ID: Ny1QM+Nx0 Be:
>>537
確かに壁の反射だけならCore Animationで大丈夫だけど、途中から他のオブジェクトが干渉する動きになってるじゃん
540 Name: 名称未設定 [] Date: 2008/03/16(日) 11:13:04 ID: JE2IUdsR0 Be:
CATransactionを使うと、アニメーションを一時的にOFFにすることができます。

CALayerって、OpenGLのポリゴンとして実装されているっぽいので、OpenGLを直接使うよりは、CALayerを使った方が楽な気がします。

541 Name: 名称未設定 [sage] Date: 2008/03/16(日) 11:21:18 ID: hMlWYnmk0 Be:
ファイルのアイコンを表示させる時に

NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"ファイルのパス"];
[iconImage setSize:NSMakeSize(16,16)];
[iconImage setScalesWhenResized:YES];

とやると、オリジナルファイルのアイコンまでリサイズされるのですか?
(されないとは思うのですが、なんか不安で^^;)


あと複数のビューで上記実装をすると、同じファイルのパスのアイコンを表示した時に落ちるのですが、

NSImage *iconImage = [[[NSWorkspace sharedWorkspace] iconForFile:@"ファイルのパス"] copy];
// ~リサイズしてビューにiconImageをセットする処理
[iconImage release];

と書くと落ちませんが、この記述が正しいのかよくわかりません。
copyをretainにしてreleaseを書かなくてもうまく行きますが、消費メモリが増えるみたいです。



542 Name: 名称未設定 [sage] Date: 2008/03/16(日) 15:41:11 ID: l9UoH/Od0 Be:
Core Data アプリで(ドキュメントベースじゃない方)、アプリを終了するとき
(データがセーブされるとき?)「(ある entity が持つ関連の名前)は有効ではありません。」
というアラートパネルが出てデータがセーブできません。

関連が「有効ではない」とは、どういう意味なのでしょうか。
どうすれば有効?にできるのでしょうか。
543 Name: 名称未設定 [sage] Date: 2008/03/16(日) 21:37:41 ID: r765AxJR0 Be:
MVCのなんたるかを学ぶのに良いソースってありませんか?
ADCのチュートリアルでMVCそれぞれ一個ずつのパターンはわかったんですが
モデルやビューの数が増えた場合にコントローラをいくつ作るか、
どのように繋げるかといった部分がピンときません。
544 Name: 名称未設定 [sage] Date: 2008/03/16(日) 21:48:11 ID: iJLWVTDd0 Be:
>>541
べつにアイコン本体はリサイズされません。その他の質問は、
retain / release をなにか間違っているのが原因だと思いますが、
もうすこしそのあたりのソースを書いてくれますか?
もしくはクラッシュしたときのスタックトレースとか。

545 Name: 名称未設定 [sage] Date: 2008/03/16(日) 22:08:17 ID: FO/H1uNc0 Be:
>>541
なぜそれでクラッシュするのか
プロジェクトファイルを上げてみたらどうでしょう?
ちょうど自分もおととい同じくファイルのアイコン表示やってました。
546 Name: 名称未設定 [] Date: 2008/03/16(日) 22:50:43 ID: JE2IUdsR0 Be:
>>543
ViewやModelの数が多くなると言う事は、それなりに規模の大きなアプリケーションであると想定されます。
そのようなものは、サンプルソースという形では、存在しないのではないかと思います。

Cocoaでは、nibファイルが1つのViewコンポーネントになります。
NSWindowControllerはnibファイルと1対1で対応しますので、nibファイルの数だけ作ってください。NSWindowControllerは常にnibファイルのfile's Ownerになります。
NSArrayControllerなどのNSControllerものは、nibファイル内に必要な数だけ設置してください。
Modelはいくつ存在しようと全てNSDocumentで管理します。そして、必要なものはView側から見えるようにアクセッサを書きましょう。
また、NSDocumentは同時にNSWindowControllerも管理しているため、ここでViewとModelがうまく繋がるようにしてください。

547 Name: 名称未設定 [sage] Date: 2008/03/16(日) 22:54:19 ID: v0hBd3uH0 Be:
>>546
なんか、初めて知ることばっかりだw
コントローラとnibファイルが1対1で対応するなんて知らなかった('A`)
こういうことはAppleのドキュメントに書いてあるんでしょうか。
548 Name: 名称未設定 [sage] Date: 2008/03/16(日) 23:35:58 ID: iJLWVTDd0 Be:
いや、べつに一対一にする必要もないと思うけど。
549 Name: 名称未設定 [] Date: 2008/03/16(日) 23:47:41 ID: JE2IUdsR0 Be:
>>548
ttp://www.stripe-net.jp/cocoa/program/blog20071110.html
ttp://www013.upp.so-net.ne.jp/tanken/Tanken/no4_PitfallOfNib.html
ttp://developer.apple.com/jp/documentation/Cocoa/Conceptual/CocoaFundamentals/OtherArchitectures/chapter_8_section_2.html

1対1にしないと、思わぬ落とし穴にハマるらしい。。

550 Name: 名称未設定 [sage] Date: 2008/03/16(日) 23:59:19 ID: r765AxJR0 Be:
>>546
レスありがとうございます。
やっぱりそういうソースはなかなか無いですか。
いくつか有名なアプリのソース覗いてみましたが複雑過ぎてわかりませんでした。

NSWindowControllerのサブクラスを作るのとNSWindowそのもののサブクラスを作るのと
どう違うのかいまいちわかっていなかったんですが
NSWindowControllerが別nibファイルのFile's owerになることで
メインnibファイルからの橋渡し役になるといった感じなんでしょうか。
NSDocumentはまだ全く触れてないのでドキュメント読んでみます。
551 Name: 名称未設定 [] Date: 2008/03/17(月) 01:14:49 ID: vHqE8yAu0 Be:
>>550
メインnibファイルって、MainMenu.nibの事ですよね?
MainMenu.nibには、その名のとおりメニューバーしかありません。小規模なアプリなら、そこにウインドウなど、もろもろを含めたりもしますが。
メニューバーは、言ってみれば階層化されたコマンドリストのようなもので、アプリ全体で共有するコマンド(アクション)を発行するだけの存在です。
そんな訳で、MVCのViewとは位置づけが違います。

NSWindowControllerが別nibファイルのFile's owerになることで、メインnibファイルからの橋渡し役になっている訳ではありません。

ドキュメント関連のメニューのTarget/Actionには、firstResponder宛のアクションを設定しておいて、
それを現在アクティブなウインドウを管理しているNSWindowControllerで受け取るようにしてください。

552 Name: 名称未設定 [sage] Date: 2008/03/17(月) 01:29:26 ID: d3uQIIZr0 Be:
質問です。
ホットキーの処理をしようと思うのですが、
NSApplicationのsendEventで拾ったイベントを
NSApplicationのmainWindowで得られるウィンドウへ送りたいです。

しかし、アプリがactiveじゃないとmainWindowが返らないので
この辺りの処理は、自力でNSApplicationのwindowsあたりから
求めるしか無いのでしょうか?
553 Name: 名称未設定 [sage] Date: 2008/03/17(月) 03:57:45 ID: YlVYmhb+0 Be:
常駐してキーイベントを取得したいってことでしょうか?
554 Name: 名称未設定 [sage] Date: 2008/03/17(月) 04:51:06 ID: d3uQIIZr0 Be:
>>553
取得は出来てるんですが、それを、開いている最前面の(メイン)ウィンドウ
に送りたいんです。バックグランドの状態で
メインウィンドウを特定する方法ありますか?
555 Name: 553 [sage] Date: 2008/03/17(月) 07:42:31 ID: ioyW7tx20 Be:
>>554
NSApplicatioinを見たら非アクティブ時はmainWindowを返さないって書いてありますね。
アプリが非アクティブになる時のノーティフィケーション NSApplicationWillResignActiveNotificationで
MyObjectにmainWindowを保持してやるのはどうでしょう?
それよりバックグラウンドでキーを取得する方法を教えてくださいw
556 Name: 名称未設定 [sage] Date: 2008/03/17(月) 07:45:39 ID: JY9v+N3k0 Be:
Cocoa Hotkey
ぐぐれカス
557 Name: 名称未設定 [sage] Date: 2008/03/17(月) 07:49:25 ID: ioyW7tx20 Be:
うわ、もう答えるのやめよ
558 Name: 名称未設定 [sage] Date: 2008/03/17(月) 07:50:42 ID: Svvodx890 Be:
ぐぐれカスと言われただけで反応してしまう、そんなことでは
荒いインターネッツを渡っていけませんよ。
559 Name: 名称未設定 [sage] Date: 2008/03/17(月) 08:05:22 ID: 0SJ4dqDe0 Be:
ゆとりくせぇ
560 Name: 名称未設定 [sage] Date: 2008/03/17(月) 08:24:58 ID: d3uQIIZr0 Be:
>>555
やはり、そうなりますか。

ttp://homepage.mac.com/mkino2//cocoaProg/Carbon/CarbonEvent/CarbonEvent.html#registerHotKey
561 Name: 名称未設定 [sage] Date: 2008/03/17(月) 21:27:55 ID: JRVvBDeU0 Be:
あーもうCocoaはまじでさっぱりだぜ
さっぱり過ぎてイライラしてきた

コーヒー飲んでくる
562 Name: 名称未設定 [sage] Date: 2008/03/17(月) 21:54:15 ID: 2j49Kzyi0 Be:
Javaもさっぱりw
563 Name: 名称未設定 [sage] Date: 2008/03/17(月) 22:18:35 ID: 0SJ4dqDe0 Be:
きれいさっぱりやめちまえ
564 Name: 名称未設定 [sage] Date: 2008/03/17(月) 22:41:00 ID: Svvodx890 Be:
そういえば Cocoa はこってりしてるものであって
さっぱりというのは変だよね???
565 Name: 名称未設定 [sage] Date: 2008/03/17(月) 22:59:50 ID: 9LfCkT9Q0 Be:
日本語って難しいね
566 Name: 名称未設定 [] Date: 2008/03/17(月) 23:13:53 ID: Qgm1wB6W0 Be:
Cocoaはやっぱり! からだと思うよ。
俺は、このスレ見たときちょっとウケた。
http://www.big.or.jp/~crane/cocoa/

そして、Cocoaはやっぱり! は、これかなやっぱり。
http://www.morinaga.co.jp/cocoa/milk/plagin/plagin.html
567 Name: 名称未設定 [sage] Date: 2008/03/17(月) 23:42:41 ID: JRVvBDeU0 Be:
目的のアクションがFirst Responderのプロパティに無い
http://cocoawiki.aerial.st/?First%20Responder

やっと穴から抜け出せた
こんなん気付かないっての
568 Name: 名称未設定 [sage] Date: 2008/03/18(火) 01:33:41 ID: 0q7ZIMW90 Be:
First Responderは入門時のちょっとしたハードルだよね
解っちまえばなんて事はないんだが
569 Name: 名称未設定 [] Date: 2008/03/18(火) 02:00:50 ID: EJDxaaux0 Be:
>>566
plaginって……。
570 Name: 名称未設定 [sage] Date: 2008/03/18(火) 07:49:27 ID: Ka+Z8k+50 Be:
https://bugzilla.mozilla.org/show_bug.cgi?id=357670
もしかしてこのスレに解決できる人いたりする??
571 Name: 名称未設定 [sage] Date: 2008/03/18(火) 23:42:19 ID: Pbz0L/oN0 Be:
>>544 >>545
遅くなりましたがレスありがとうございます。
クラッシュはコードミスのようでした。(retainせずにreleaseをかましていた)
572 Name: 名称未設定 [sage] Date: 2008/03/19(水) 00:24:31 ID: 2u7UcMMQ0 Be:
OS 10.5.2 Xcode3.1 IB3.1使用でwebKit.frameworkを使っています。
以前はIB上でwebViewを出しインスタンス化すれば、バインドするコントローラーの一覧にwebViewが表示され、
普通にバインディングできていたのですが、今はなぜかそれができなくなってしまっています。
バインドするコントローラーにwebViewがでなくなってしまっています。
どのようにすれば良いのでしょう、お助けください。
573 Name: 名称未設定 [sage] Date: 2008/03/19(水) 01:06:49 ID: OxeGc8Ke0 Be:
>>570
それ Cocoa じゃなくて Carbon じゃね?

TSM まわりか... 大昔になんかやったな。
2.0で動いてるんならそのコードを3.0でも使えばいいとかそういう簡単な話じゃないのかね。
574 Name: 名称未設定 [sage] Date: 2008/03/19(水) 03:51:26 ID: r5J3G60+0 Be:
モデルのインスタンス変数にビューをバインディングしている場合、
モデル自身がインスタンス変数を書き換える時に
_hoge = value;
だと変更がビューに適応されず、
[self setHoge:value];
だと適応されました。

バインディングに対応させつつ、外部から変更されたくない(-setHoge:を作りたくない)
インスタンス変数の場合はどのようにすればいいのでしょうか。
575 Name: 名称未設定 [sage] Date: 2008/03/19(水) 07:32:40 ID: jXpGxGc90 Be:
>>574
Objective-C ではそんなことはできないです。
Binding 使ってる時点で外部から書き換えてるということだと思いますが ...
576 Name: 名称未設定 [sage] Date: 2008/03/19(水) 07:58:38 ID: 6SrUt3+f0 Be:
>>574
_hoge = value; の行を

[self willChangeValueForKey:@"hoge"];
[self didChangeValueForKey:@"hoge"];
ではさむ。
577 Name: 名称未設定 [sage] Date: 2008/03/19(水) 11:59:14 ID: YsZYYm1u0 Be:
>>573
Firefox 2まではCarbon使ってたみたいなんだけど、
Firefox 3はCocoaベースらしい。
578 Name: 名称未設定 [sage] Date: 2008/03/19(水) 12:40:52 ID: hNYu1h+e0 Be:
質問です。
アップルのDVDプレイヤーのコントローラのように引き出しを
開閉してボタン類を表示/非表示できるようにしたいのですが、
どのような実装方法があるでしょうか。
579 Name: 名称未設定 [sage] Date: 2008/03/19(水) 13:51:57 ID: zCALDrQJ0 Be:
>>578
気合
580 Name: 名称未設定 [] Date: 2008/03/19(水) 14:53:13 ID: LtiyT8bq0 Be:
>>578
気合いを入れながらグーグルで"cocoa drawer"と検索すると色々と出て来たけど。
これとは違うの?

不定形ウインドウでやりたいならば、もう少し気合いを入れてキーボードを叩くと
他にも出てくるかもよ。
581 Name: 574 [sage] Date: 2008/03/19(水) 15:38:57 ID: r5J3G60+0 Be:
レスありがとうございます。

>>575
ネットワークからデータを継続的に受信(送信はできない)して
その状態を表示したかったのです。

>>576
おお、全く問題なくうまくいきました。
ありがとうございます。
582 Name: 名称未設定 [sage] Date: 2008/03/19(水) 16:47:21 ID: hNYu1h+e0 Be:
>>578,>>579
なにかうまい方法はないかと思って質問しました。
とりあえず気合いと不定形ウィンドウで、全く同じ
外観・挙動を再現できました。
ありがとうございました。
583 Name: 名称未設定 [sage] Date: 2008/03/19(水) 18:39:41 ID: TjSVC8tf0 Be:
追加したい機能がこれ以上無いのですが、
どうすればよろしいのでしょうか。

もちろんネタですよ^^
584 Name: 名称未設定 [sage] Date: 2008/03/19(水) 19:55:37 ID: JPY96AeA0 Be:
>>583
最終バージョンを出して開発終了を宣言すればいいとおも
585 Name: 名称未設定 [sage] Date: 2008/03/19(水) 20:11:32 ID: JM+VrnTM0 Be:
追加したい機能じゃなくて追加して欲しい機能をつければいいかと
586 Name: 名称未設定 [sage] Date: 2008/03/19(水) 20:53:35 ID: QA0Ieyl10 Be:
そういえばDVD プレーヤーはCarbonアプリだよね?
587 Name: 304 [sage] Date: 2008/03/19(水) 23:59:30 ID: cvsOWou+0 Be:
すいません質問させて下さい。

OptionキーのKeyUpを取得したいのですが方法はありませんでしょうか?

KeyDownに関しては
NSFlagsChangedで修飾キーのイベントを取得して
[theEvent modifierFlags] & NSAlternateKeyMask でOptionキーかどうかの判定はできています。

目的としてはOptionキーを押されている間のマウスイベントに対して処理をして
Optionキーが離されたでメソッドを発火させたいのです。

ご教授おねがいします。
588 Name: 名称未設定 [sage] Date: 2008/03/20(木) 00:06:22 ID: jXpGxGc90 Be:
>>581
_hoge というインスタンス変数を作った段階で、
[obj setValue: ... forKey: @"hoge" ]
という KVC は出来る、というかそれがあるので Binding も働いているので、
setHoge: を書こうが書くまいが外部に _hoge はバレていると思うんですが。
589 Name: 574 [sage] Date: 2008/03/20(木) 01:21:11 ID: ZJ4slusJ0 Be:
>>588
それについては+accessInstanceVariablesDirectlyでNOを返して、
アクセッサメソッドなしのキーはバインドできないようにしました。
590 Name: 名称未設定 [sage] Date: 2008/03/20(木) 01:32:12 ID: xNm+fBqj0 Be:
NSMenuItemにアイコン(Resoucesに登録した)を表示させるのですが、
サブクラスでコードを書かずにI.Bのバインディングから表示させる方法はありますでしょうか?
バインディング項目に「image」があるのですが使い方がいまいちさっぱりで。


591 Name: 名称未設定 [sage] Date: 2008/03/20(木) 14:27:54 ID: 15Vd/Jbn0 Be:
考えた末にNSImageを返すメソッドを記述したクラスを作り、
インスタンス化してIBのバインディンクのキーパスにそのメソッドを書くようにしました。

新たなアイコンを表示させたい場合は、
前述のクラスにメソッドを追加してバインドさせる。

こんなローテクな方法でいいのかしらん。
592 Name: 名称未設定 [sage] Date: 2008/03/20(木) 17:00:18 ID: 2OwqXvN50 Be:
イメージが固定なのなら、インスペクタのバインディングじゃなくて
普通の設定画面のところで image を設定してしまえばいいんでは?
593 Name: かけだしCocoaプログラマー [] Date: 2008/03/20(木) 22:24:31 ID: Nr+20M9t0 Be:
今日はHMDTの”Cocoaセミナーグラフィックス編”をやろうとおもったんだが…

http://imepita.jp/20080320/805070
594 Name: 名称未設定 [sage] Date: 2008/03/20(木) 22:31:44 ID: vXaeiU1q0 Be:
>>593
ワロタ
595 Name: 名称未設定 [sage] Date: 2008/03/21(金) 00:18:24 ID: 2ArjEdd20 Be:
>>593
なんてこったいw
596 Name: 名称未設定 [sage] Date: 2008/03/21(金) 00:51:07 ID: LX/gvIbU0 Be:
>>593
素敵だ
597 Name: 名称未設定 [sage] Date: 2008/03/21(金) 01:28:36 ID: V8QBDzt90 Be:
>>593
アホスw
598 Name: 名称未設定 [sage] Date: 2008/03/21(金) 01:57:35 ID: o5LRJLp00 Be:
>>593
それに気づいただけでなく、アップしてみんなに見せようという精神に惚れたwwww
599 Name: 名称未設定 [sage] Date: 2008/03/21(金) 11:41:13 ID: kwhCZJGqP Be:
>>587
CarbonのInstallApplicationEventHandler()でgEventRowKeyModifiersChangedな
イベントハンドラを登録する、ってところじゃないか。

あと「ご教示」の方が普通。
600 Name: 名称未設定 [sage] Date: 2008/03/21(金) 12:09:55 ID: vJyPXVm30 Be:
>>599
CarbonっていうことはCですよね。
調べてみます。

ご教示ありがとうございました。
601 Name: 名称未設定 [sage] Date: 2008/03/21(金) 16:43:56 ID: RYo3aYNz0 Be:
>>600
順応性高いなW
602 Name: 名称未設定 [sage] Date: 2008/03/21(金) 16:55:44 ID: DNSgU9qe0 Be:
Document-BasedでWIndowのCloseをオーバーライドするときは
どこを変更するのが適切ですかね
603 Name: 名称未設定 [sage] Date: 2008/03/21(金) 17:06:23 ID: JKoiaZjv0 Be:
すごく初歩的なことかも知れませんが、
[NSString stringWithFormat:@"???", hoge];
で数値hogeが一桁でも二桁でも二桁表示させるにはどうしたらいいでしょうか?
例えば数字が5の時は05と表示させたいのですが
604 Name: 名称未設定 [sage] Date: 2008/03/21(金) 17:10:08 ID: JKoiaZjv0 Be:
すません自己解決しました
@"%.2d", intHoge でした
605 Name: 名称未設定 [sage] Date: 2008/03/21(金) 18:35:18 ID: o5LRJLp00 Be:
CoreAnimation関係で質問お願いします。
あるアニメーションを実行後、そのアニメーションが終了後に、新たなアニメーションをさせる
方法を模索しているのですが、ヒントを下さい。

NSThread でやろうとしましたが、
[NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
で次のアニメーションまで待機させようとすると、あたりまえですが現在やっている
アニメーションもとまってしまいます。
606 Name: 名称未設定 [sage] Date: 2008/03/21(金) 18:50:29 ID: RCdqjOKq0 Be:
>>605
CAAnimationのデリゲートにanimationDidStop:finished:あるよ
607 Name: 名称未設定 [sage] Date: 2008/03/21(金) 19:09:38 ID: o5LRJLp00 Be:
>>606
早速的確なレス、ありがとうございました。
調べ方が足りなくて申し訳ないですorz
608 Name: 名称未設定 [sage] Date: 2008/03/21(金) 19:24:17 ID: o5LRJLp00 Be:
ついでといってはなんなのですが、
[NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
のように完全に動作をとめてしまうのではなくて、
一定時間イベントループをまわしながら一定時間待機し、その後に次の処理を行うという方法はあるのでしょうか。
NSRunLoop関連をあさってみてもそれっぽいメソッドが見つかりません。
609 Name: 名称未設定 [sage] Date: 2008/03/21(金) 20:00:57 ID: kwhCZJGqP Be:
>>608
つ performSelector:withObject:afterDelay:
610 Name: 名称未設定 [sage] Date: 2008/03/21(金) 20:10:04 ID: RCdqjOKq0 Be:
>>608
つ NSTimer
611 Name: かけだしCocoaプログラマー [] Date: 2008/03/21(金) 20:12:31 ID: Or+ym4vS0 Be:
ちょっとした疑問を2つばかり質問させてください
くだらないですが

1.Cocoaでhogeに変わる代名詞みたいなのはないですか?
2.Webで配られてる各種ドキュメント、htmlとpdfがある場合皆さんはどちらで読みますか?(印刷という選択肢もあるかも)
612 Name: 名称未設定 [] Date: 2008/03/21(金) 20:13:10 ID: Or+ym4vS0 Be:
あ、コテすんません。昨日は叩かれるかと思ったら
思いのほかの反響で気を良くしましたw
613 Name: 名称未設定 [sage] Date: 2008/03/21(金) 20:20:50 ID: o5LRJLp00 Be:
>>609,610
まさに、こういう的確なメソッドがあるんですねorz

Cocoa入門したての者にとっては、オブジェクト指向や
Cocoaの流儀を身につけるという壁を通り越しても、
経験不足で必要なメソッドがどのクラスにあるのかを
探すのに一苦労です。
614 Name: 名称未設定 [sage] Date: 2008/03/21(金) 21:25:58 ID: uufxW9uu0 Be:
メソッドが沢山ありすぎてみつからないのは
僕もいつまでたってもそうな気がします。
暇なときに、自分のいまやっているプログラムとは関係なくても、
色んなクラスのクラスリファレンスをざっと眺めて、どんなクラスに
どんな機能があるかを知っておくといいと思います。
615 Name: 名称未設定 [sage] Date: 2008/03/21(金) 21:44:42 ID: RYo3aYNz0 Be:
入門したて+CoreAnimation=iPhonSDK ってところか?
616 Name: 名称未設定 [sage] Date: 2008/03/22(土) 00:38:43 ID: U1zy9GEC0 Be:
>>615
いや、違います。ふつうのMac用の開発ですw
617 Name: 名称未設定 [sage] Date: 2008/03/22(土) 12:14:12 ID: Cd3PC9Cy0 Be:
NSDateで年日時秒まで取得できますが、millisecondまで取得するにはどうしたらいいでしょうか?
618 Name: 名称未設定 [sage] Date: 2008/03/22(土) 13:22:10 ID: lcpIJJHd0 Be:
>> 602
普通にwinodwのdelegateをNSDocumentサブクラスあたりに指定して
windowWillClose:, windowShouldClose:を実装すればいいんじゃないの?
もちっと言うと,NSDocumentは,ひとつのドキュメントが複数のウインドウ
(というかNSWindowController) を持つようなデザインもできるから,
ウインドウを閉じる==書類を閉じる,とは限らない。
だから,NSDocument自体にはウインドウを閉じることに対するメソッドはないのだと思う。
>> 617
確かに明示的なメソッドはないようだね。
NSTimeIntervalはdouble型だから,その少数部分を使うしかないのかな?
619 Name: 名称未設定 [sage] Date: 2008/03/22(土) 13:46:58 ID: dAI5dUl90 Be:
http://developer.apple.com/documentation/Cocoa/Conceptual/DatesAndTimes/Articles/dtDatesToStrings.html#
620 Name: 名称未設定 [sage] Date: 2008/03/22(土) 17:46:42 ID: DQfkC0HV0 Be:
カードゲームを作っているのですが、設計についてアドバイスを
いただきたいので、お願いします。

作っているカードゲームは、数十枚のカードで構成されたデッキ
を使います。デッキに含まれるカードは手札・墓地などに移動する
ことがあります。カードの数が多いので、NSArray で管理したいと
思っています。また、Viewに関しては一枚一枚のカードを1対1で
CoreAnimation のレイヤーに対応させて表示することにします。

まず考えた設計が、デッキ・手札・墓地などにそれぞれの配列を
用意し、たとえばデッキから手札にカードが移動する場合は、
デッキの配列から要素をひとつ手札の配列にもっていく
というようなものです。
しかし、ViewであるCoreAnimation レイヤーを
一枚一枚のカードに1対1で対応させたいのですが、この設計だとViewが
一枚一枚のカードを追えなくなるという問題があります。


そこで、全てのカードをひとつの配列にいれ、それぞれのカードについて
「デッキ・手札・墓地のうちどこに存在するのか」という情報を
持たせ、View (CoreAnimation) がその情報を問い合わせて、
存在する場所に応じてレイヤーの表示位置を決める
(たとえばあるカードが墓地にあるという情報をもらったら、墓地のある
場所にそのカードのレイヤーを動かす)という設計を考えました。
この方法は、デッキや手札の枚数を数えるのが面倒というような問題が
あります。

どっちもどっちという設計なのですが、どんなことでも良いので、
何かアイディアがありましたらご教示お願いします。
621 Name: 名称未設定 [sage] Date: 2008/03/22(土) 18:12:02 ID: j0dJ8sd10 Be:
こんな感じではどうだろう

カードに相当するオブジェクト(のサブクラス)を作り、
そのクラスのインスタンスをカードの数だけ作成する。
インスタンス自体が、自分のステイタス(どの場所にいるかなど)を管理する。
また、このインスタンスが、自らのステイタスの変更に応じて自分自身のアニメーションを管理。

さらに全部のカードを管理する管理手段を用意する。(NSArrayそのものよりも、全カードが登録されたNSArrayを有する
NSObject のサブクラス…例えばsharedCardController みたいな感じで作る。)

ある特定条件(あるプレイヤーの手札等)に合致するカード群を得たいときには、sharedCardController に問い合わせ、
NSArray から抽出されたカード群を得るようにする。

NSArray から特定条件のオブジェクト(カード)を抽出するには、filteredArrayUsingPredicate を使えば簡単。
622 Name: 名称未設定 [sage] Date: 2008/03/22(土) 20:45:23 ID: osUpCFYp0 Be:
>>620
配列で考えてしまうのは手続き型プログラミングに慣れた人の悪い癖かな。
>>621のように個々のオブジェクトを作り動作をするようにしないと
(特にゲームでは)大変になるよ。
623 Name: 620 [sage] Date: 2008/03/22(土) 22:10:33 ID: U1zy9GEC0 Be:
>>621
>>622さんのおっしゃる通り、今まで手続き型言語で
やっていたので、本当に目から鱗です。
ありがとうございました。参考になりました

カードの情報はNSDictionary で持つというのがオーソドックス
でしょうか。
624 Name: 名称未設定 [sage] Date: 2008/03/22(土) 22:15:33 ID: RY2IPzvt0 Be:
Dictionary でもいいけど、小さなクラスを自分で書いても良いかも知れません。
625 Name: 名称未設定 [sage] Date: 2008/03/23(日) 14:18:56 ID: aM2iHDIs0 Be:
>>619
ありがとうございます!できました。
626 Name: 名称未設定 [sage] Date: 2008/03/23(日) 17:10:46 ID: WzjVZI4V0 Be:
最近導入されたガベージコレクションって特定のポインタだけコレクションから除外することって
できないんでしょうか?
627 Name: 名称未設定 [sage] Date: 2008/03/23(日) 17:38:04 ID: XbjPbT2T0 Be:
>>626
staticにして参照を持続させればいいんじゃない?
628 Name: 名称未設定 [sage] Date: 2008/03/23(日) 20:05:13 ID: 8E4Zc9S+0 Be:
テキストを編集し終えたら(リターンキーで)特定の処理をし、次のTextFieldにフォーカスを移したいのですが…
以下のようにNSTextFieldのサブクラスとして書くと、フォーカスは移るのですが
フォーカスリングが残留…

- (void)textDidEndEditing:(NSNotification*)aNotification
{
(処理)
[super textDidEndEditing: aNotification];
[myWindow makeFirstResponder: nextField];
}

逆にこう書くと、フォーカスリングが移らない…
- (void)textDidEndEditing:(NSNotification*)aNotification
{
(処理)
[myWindow makeFirstResponder: nextField];
[super textDidEndEditing: aNotification];
}

フォーカスリングを奇麗さっぱり消し去って、次のテキストフィールドに気持ちよくフォーカスを移す
方法はあるのでしょうか。
629 Name: 名称未設定 [sage] Date: 2008/03/23(日) 20:11:29 ID: IRBC2lH20 Be:
>>626
-[NSGarbageCollector disableCollectorForPointer:]
630 Name: 名称未設定 [] Date: 2008/03/23(日) 20:33:46 ID: ZtRxy6bU0 Be:
>>628
[myWindow performSelector:@selector(makeFirstResponder:)
withObject:nextField
afterDelay:0.0];
使った事無いけど、これで少しだけフォーカスを動かすのを遅らせて実行してみるのは
どうでしょう?
631 Name: 名称未設定 [sage] Date: 2008/03/23(日) 20:48:30 ID: WzjVZI4V0 Be:
>>629
どうもありがとうございます
632 Name: 名称未設定 [sage] Date: 2008/03/23(日) 20:54:50 ID: PZymx9F80 Be:
みんなGC使っているの?
Cocoa-Javaであったような変なバグはなさそうですか?
633 Name: 名称未設定 [sage] Date: 2008/03/24(月) 01:03:50 ID: WyrRZb9k0 Be:
>>630
おおおおおおおおおおっ!
なんと目から鱗…確かにこれでできる。
ありがとうございましたm(..)m
634 Name: 名称未設定 [sage] Date: 2008/03/24(月) 04:23:51 ID: tx+hpjrD0 Be:
処理の最後に
[myWindow display];
とかでは駄目なんですかね。試してないけど。
635 Name: 名称未設定 [sage] Date: 2008/03/24(月) 10:29:47 ID: 30sON1PI0 Be:
デバッグ用に入れてたNSLog(@"ほげほげ");みたいなのを消し忘れて
配布してしまったら客先でもこのメッセージ見ることできちゃうでしょうか?
636 Name: 名称未設定 [sage] Date: 2008/03/24(月) 10:35:00 ID: 7gxHf5/+0 Be:
はい
637 Name: 名称未設定 [sage] Date: 2008/03/24(月) 10:42:04 ID: 30sON1PI0 Be:
向こうが開発ツールインストールしてなければ大丈夫でしょうか?
638 Name: 名称未設定 [sage] Date: 2008/03/24(月) 10:57:34 ID: 6M+LSOMP0 Be:
>>637
アプリケーション>ユーティリティ>コンソールで見れそうな気がする
試してないからわからんが
639 Name: 名称未設定 [sage] Date: 2008/03/24(月) 11:06:46 ID: e9YAvDG20 Be:
たしかにコンソールで出力みれるね。
640 Name: 名称未設定 [sage] Date: 2008/03/24(月) 11:07:21 ID: ORYHapWU0 Be:
Framworkの作り方とかIBのパレットの作り方を解説してるサイトはありませんか?
日本語ならなお良いのですが、、
641 Name: 名称未設定 [sage] Date: 2008/03/24(月) 11:08:25 ID: 30sON1PI0 Be:
ほんとだ、しかも起動していない間のも全部表示される...
642 Name: 名称未設定 [sage] Date: 2008/03/24(月) 11:32:39 ID: 7gxHf5/+0 Be:
>>641
ありえないから(w
643 Name: 名称未設定 [sage] Date: 2008/03/24(月) 11:41:02 ID: 30sON1PI0 Be:
>>642
コンソール.appを起動していない時に別のアプリがNSLog()で出力したメッセージを
後からコンソール.appを起動して見ることができるっていう意味です
コンソール.appを起動してみるとクラッシュレポーターとかソフトウェアアップデートのログとか見れますよ
644 Name: 名称未設定 [sage] Date: 2008/03/24(月) 11:44:57 ID: 7gxHf5/+0 Be:
consoleとかsyslogの仕組みが分かってなかったのか。

コンソール.appはログファイルの閲覧ソフトで、
実際のログは各アプリ等が随時ログファイルに出力してるんだよ。
コンソール.appがログを収集してるわけではないです。
645 Name: 名称未設定 [sage] Date: 2008/03/24(月) 11:51:02 ID: PQmKZTnh0 Be:
ID:30sON1PI0は別に勘違いしてるようには見えないが
646 Name: 名称未設定 [sage] Date: 2008/03/24(月) 11:54:54 ID: yq2FKLng0 Be:
>>640
http://www.bignerdranch.com/palettes/index.html
http://wwwa.dcns.ne.jp/~nito/OSPT/Palette.html
ここらへんか?
IB3からはがらりと変わるが、考え方は同じ。
647 Name: 名称未設定 [sage] Date: 2008/03/25(火) 00:20:14 ID: oGnMEO7s0 Be:
>>643
誰でも知っとるがなw
648 Name: 名称未設定 [sage] Date: 2008/03/25(火) 00:47:43 ID: xIvc7Wix0 Be:
>>642が訳わからん対応したからだろう
いちいち人を見下したい人間が多くてかなわんなここは
649 Name: 名称未設定 [sage] Date: 2008/03/25(火) 01:13:10 ID: orjrxt6j0 Be:
Xcode 3.1betaだけどさ、新規プロジェクト作製でRegacy Appのためのプロジェクトがリストから無くなったような?
650 Name: 名称未設定 [sage] Date: 2008/03/25(火) 01:30:36 ID: ws66GuJV0 Be:
俺は>>642>>644の対応の意図は分かるがなぁ。
結果的に捉え違いだっただけであって、そう受け取るのも無理はない。
見下したことになっててカワイソス
651 Name: 名称未設定 [sage] Date: 2008/03/25(火) 08:33:45 ID: j9yfRVIu0 Be:
俺も捉え違えてて何言ってるんだろう、、て思った
652 Name: 名称未設定 [sage] Date: 2008/03/25(火) 09:02:57 ID: N/b8Flu70 Be:
>>642のとらえ違いを>>643で説明されて一件落着にすればよかったものを
気恥ずかしさのせいか自分のとらえ違いを認められずに>>644で相手を無知だ
とバカにしてごまかして終わろうとしたのがセコイ
653 Name: 名称未設定 [sage] Date: 2008/03/25(火) 09:10:05 ID: CPjelZsm0 Be:
ここらで終わりにしようか単発IDさん
654 Name: 名称未設定 [sage] Date: 2008/03/25(火) 09:28:20 ID: N/b8Flu70 Be:
気に入らない書き込みが複数あると1人がいろいろなIPで自演してるように思いたく
なることってあるよねw
655 Name: 名称未設定 [sage] Date: 2008/03/25(火) 11:23:44 ID: GULb0EbA0 Be:
質問お願いします。
ふつう、乱数を発生させるとき、Cの関数を使って

int hoge;
srand(time(nil)); //時刻により乱数を初期化
hoge = rand() %x;

とやりますよね。この方法で乱数を発生させてログを出力すると、
こんなふうになりました。

2008-03-25 11:20:56.587 6
2008-03-25 11:20:56.827 6
2008-03-25 11:20:57.027 1
2008-03-25 11:20:57.187 1
2008-03-25 11:20:57.803 1
2008-03-25 11:20:57.963 1
2008-03-25 11:20:58.107 2
2008-03-25 11:20:58.267 2
2008-03-25 11:20:58.595 2
2008-03-25 11:20:58.755 2

明らかに、秒が変わるまでは同じ値が発生してしまいます。
Cocoaできちんとした乱数を発生させるメソッドなどは
存在するのでしょうか?

656 Name: 名称未設定 [sage] Date: 2008/03/25(火) 11:24:12 ID: NL8rB6oh0 Be:
他所でやれ、このうすらハゲ
657 Name: 名称未設定 [sage] Date: 2008/03/25(火) 11:27:02 ID: nKQFEaaU0 Be:
srandでシードを毎回初期化してたら
種が同じ以上同じ結果が出ると思うんだけど
658 Name: 名称未設定 [sage] Date: 2008/03/25(火) 11:31:15 ID: GULb0EbA0 Be:
>>657
あ、確かにそうでしたorz
修正してみます。ありがとうございます。
659 Name: 名称未設定 [sage] Date: 2008/03/25(火) 11:59:22 ID: ccV76MEE0 Be:
乱数を何に使うか知らないけど,数値計算に使うなら
メルセンヌツイスターを使う方がよい.
660 Name: 名称未設定 [sage] Date: 2008/03/25(火) 12:08:36 ID: GULb0EbA0 Be:
>>659
サイコロを振る機能のために使います。
統計的に正しく目がでるのが目標です。
メルセンスツイスターについては調べてみます。ありがとうございました。
661 Name: 名称未設定 [sage] Date: 2008/03/25(火) 13:26:07 ID: hfM3EUe40 Be:
メルセンヌツイスター

相手は死ぬ
662 Name: 名称未設定 [sage] Date: 2008/03/25(火) 15:47:14 ID: 1Dtues1N0 Be:
ダイスを作成するのに
hoge = rand() %x;
するのはカルドセプトサーガのプログラマー並みの阿呆のすること。
もしかしたらOSX(=FreeBSD?)のrand(3)は下位ビットまでランダムかもしらんが。
663 Name: 名称未設定 [sage] Date: 2008/03/25(火) 16:10:05 ID: Y5ONulS70 Be:
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/srand.3.html
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/random.3.html

とりあえずこのへん参照。
rand() は精度がわるいから、random() をつかえということに
OS X ではなってます。というか BSD の時点で。
664 Name: 名称未設定 [sage] Date: 2008/03/25(火) 16:21:39 ID: 5/YrTxQU0 Be:
man -a rand
bad random number generator

man 3 random
better random number generator

...man 3 RANDだと出ないし、man 3 randだと違うのが出る。
RAND(3)はどうすりゃ一発ででるんだろ。
665 Name: 名称未設定 [sage] Date: 2008/03/25(火) 17:25:18 ID: Y5ONulS70 Be:
man 3 srand

666 Name: 名称未設定 [sage] Date: 2008/03/25(火) 23:09:58 ID: XBnGiDPv0 Be:
>>646
遅くなりました、ありがとうございます。今必死に英語を読んでいます。

整数値のランダムはScreenSaver.frameworkにSSRandomIntBetweenというのがありますよ
667 Name: 名称未設定 [sage] Date: 2008/03/25(火) 23:15:56 ID: WxYsW0/Z0 Be:
Hello Worldが終わって、次はサイコロでも作ろうと
NSRandomなんちゃらがあるんだろうとリファレンスを探しまくった日々……
668 Name: 名称未設定 [] Date: 2008/03/26(水) 01:56:25 ID: Fh3watAI0 Be:
どなたか教えてください。
これからCocoaを勉強しようと思うのですが、先に身につけておいた方が良い知識には何が有るでしょうか?
スレをざっと読んだところではC言語くらい出来てないと駄目みたいな印象を受けるのですが・・・。
C言語もどこまで理解できればいいのやら・・・。
ちなみにプログラミングの経験は全くのゼロです。
669 Name: 名称未設定 [] Date: 2008/03/26(水) 02:05:52 ID: TRoZfAHo0 Be:
>>668
下手に寄り道するよりこれを嫁。
「たのしいcocoaプログラミング」に匹敵すると俺は思う
http://homepage.mac.com/nsekine/SYW/SYWSoft/learnCocoa/bexcoder.html
670 Name: 名称未設定 [sage] Date: 2008/03/26(水) 02:07:26 ID: BjCvcuqh0 Be:
(自分で見てみて)スーパー簡単そうなC言語入門本を買って
それなりにやったらCocoaをやるべし
Cocoa本はたのしいCocoaでいいんじゃまいか
671 Name: 名称未設定 [sage] Date: 2008/03/26(水) 04:02:26 ID: uEjN//nU0 Be:
>>662-667
ありがとうございました。
いただいた情報をもとにさらに勉強します。

672 Name: 名称未設定 [sage] Date: 2008/03/26(水) 09:44:43 ID: Lf3LYf5Y0 Be:
うーむ、プログラミング知識なしでいきなりココアかいな。
変数とか配列とかの基礎知識もないまま突入すると玉砕しそう。
強烈に作りたい何かがないと大変かな。

がんばれ。
673 Name: 名称未設定 [sage] Date: 2008/03/26(水) 10:05:53 ID: 4f6bzT0P0 Be:
>強烈に作りたい何かがないと大変かな。

でもこれに勝るものはないよな~
674 Name: 名称未設定 [sage] Date: 2008/03/26(水) 12:20:29 ID: Dus3Jm7g0 Be:
自分は一応Java,Javascript,Perl,Applescriptはできるんだが
なんかObjective-CとかCocoaって難しそうなイメージがある
675 Name: 名称未設定 [] Date: 2008/03/26(水) 13:14:03 ID: TRoZfAHo0 Be:
>>672
最近の教本はその辺も比較的手厚いよ
676 Name: 名称未設定 [sage] Date: 2008/03/26(水) 13:25:53 ID: YaGvBisq0 Be:
>>674
それだけ出来るんだったら Obj-C は何も問題ないと思うが。
メモリ管理もレパードで GC まかせにできるようになったし。
677 Name: 名称未設定 [sage] Date: 2008/03/26(水) 13:51:27 ID: V0uK7QIb0 Be:
Java がわかって Obj-C がわからんことは絶対にないよね
678 Name: 名称未設定 [sage] Date: 2008/03/26(水) 14:33:33 ID: Dus3Jm7g0 Be:
>>676-677
そうなのか…
がんばってみようかな
CocoaはなんかInterface Builderが壁になってる
バインディングとかよくわからなくて
けど慣れたらこれ便利なんだろうなぁ
679 Name: 名称未設定 [sage] Date: 2008/03/26(水) 14:37:43 ID: ZvLGgE/d0 Be:
>>677
だな.そもそも言語の系統が
Smalltalk -> Objective-C -> Java
だもんな.
680 Name: 名称未設定 [sage] Date: 2008/03/26(水) 15:29:22 ID: 29Rhmany0 Be:
>>678
IBの操作なら(それ以外もだけど)、↓のCocoaセミナーが参考になるよ。
ttp://developer.apple.com/jp/documentation/japanese.html
681 Name: 名称未設定 [sage] Date: 2008/03/26(水) 15:36:57 ID: Dus3Jm7g0 Be:
>>680
ありがとうございます。見てみます。
682 Name: 名称未設定 [sage] Date: 2008/03/26(水) 16:04:05 ID: Dus3Jm7g0 Be:
[AdsenseWebView takeStringURLFrom:@"http://google.com/"];
は無理か…
WebViewにページを表示させるにはどうしたらいいんだろ
683 Name: 名称未設定 [sage] Date: 2008/03/26(水) 17:03:20 ID: /nMcS7mv0 Be:
IB起因のバグはエラー表示みてもピント来ないから困る。
その辺どうにかならないかなぁ。
684 Name: 名称未設定 [sage] Date: 2008/03/26(水) 17:32:14 ID: 29Rhmany0 Be:
>>683
Objective-Cのダイナミズムに由来するものでしょ。慣れるしか。
685 Name: 名称未設定 [sage] Date: 2008/03/26(水) 19:30:02 ID: ltBg2xNg0 Be:
バインディング名が間違ってたりすると、間違っている箇所を探すのが困難。
バインディング設定のコピーが困難。
686 Name: 名称未設定 [sage] Date: 2008/03/26(水) 19:53:42 ID: Dus3Jm7g0 Be:
どうしよ
挫折しそうだorz

>>682について
いろいろググってWebViewからURLを取得する方法はわかったが指定したURLをWebViewに表示する方法がわからんorz
WebViewあきらめて他いろいろ試すかな…
687 Name: 名称未設定 [sage] Date: 2008/03/26(水) 20:01:31 ID: YaGvBisq0 Be:
http://developer.apple.com/documentation/Cocoa/Reference/WebKit/Classes/WebView_Class/Reference/Reference.html

setMainFrameURL: では?
ググるよりなにより ADC のレファレンスを読もうね。
688 Name: 名称未設定 [sage] Date: 2008/03/26(水) 20:02:44 ID: 9uCTvEbf0 Be:
>>686
>指定したURLをWebViewに表示する方法

setMainFrameURLでできるんじゃないかな?
689 Name: 名称未設定 [sage] Date: 2008/03/26(水) 20:05:05 ID: Dus3Jm7g0 Be:
>>687-688
ありがとうございますm(_ _)m
リファレンス英語だからと避けてましたがやっぱり読まないとだめか…
690 Name: 名称未設定 [sage] Date: 2008/03/26(水) 20:16:59 ID: fmlM2gNgO Be:
Macで開発するのに英語は不可避。
691 Name: 名称未設定 [sage] Date: 2008/03/26(水) 20:45:59 ID: pRYgUDTv0 Be:
>>685
禿堂
バインディングのエラーは本当に頭が痛い
おかしい場所を探し当てるのにものすごく苦労する
MVCという意味ではバインディングを使った方がいいと思うが、
生産性に関しては、使わない方が良い気がしてる
692 Name: 668 [] Date: 2008/03/26(水) 20:52:43 ID: V4kJA3iF0 Be:
>>669
>>670
助言ありがとうございます。
色々やってみようとおもいます。

>>672
自分用にカスタマイズしたメモ帳が作りたくて・・・。
頑張ります。
693 Name: 名称未設定 [sage] Date: 2008/03/26(水) 20:54:46 ID: q+vNZ+gQ0 Be:
バインディングは結構慣れだよ。最初のうちはわからずに色々バインディングしたくなるけど、下手にバインディングすると逆に動かないから気をつけた方がいいよ。
694 Name: 名称未設定 [sage] Date: 2008/03/26(水) 20:58:18 ID: fmlM2gNgO Be:
生産性を上げる(定型的な繋ぎコードを書く時間を他のことに使う)ためのものなんだけどな。
695 Name: 691 [sage] Date: 2008/03/26(水) 21:07:39 ID: pRYgUDTv0 Be:
>>694
「生産性」にはデバッグのし易さも含まれる。

繋ぎコードを書く時間 > バインディングのデバッグ時間
とは限らない。

むしろ逆のケースが多いと思っている。
696 Name: 名称未設定 [sage] Date: 2008/03/27(木) 16:57:28 ID: 2lU4qwrN0 Be:
cocoaで内部的にIB actionのメソッドを叩くことがあるけど、
そのメソッドがsenderを使う場合と、無視してる場合がある。

やっぱり呼び出し元でsenderも一応用意した方がいいんでしょうかね?
それとも気にしないで、適当なobjectでも渡しておきますか。
697 Name: 名称未設定 [sage] Date: 2008/03/27(木) 17:51:32 ID: hJlJV+s30 Be:
sender情報がいらないならnilでも渡しとけば。
698 Name: 名称未設定 [sage] Date: 2008/03/27(木) 21:38:35 ID: xrWakgsG0 Be:
便乗ですみませんが、>>696のように内部のメソッドで
senderに値(intやstring)をセットするにはどうすればよいのでしょうか。
699 Name: 名称未設定 [sage] Date: 2008/03/27(木) 21:51:30 ID: lMYLREM30 Be:
intならNSNumber使うよろし
stringって?
700 Name: 名称未設定 [sage] Date: 2008/03/27(木) 22:34:45 ID: a+jkObxj0 Be:
std::string とか?

NSString* なら id にそのまま渡せるけど、
IBAction の sender にそのまま NSString を渡すのはなにか変な気がする
701 Name: 名称未設定 [sage] Date: 2008/03/27(木) 23:02:48 ID: qJBldE3u0 Be:
NSStringなら渡せるべ
702 Name: 名称未設定 [sage] Date: 2008/03/28(金) 00:22:48 ID: Q/pibkmJ0 Be:
とりあえずselfを渡しとけばいいんでないかい?
インスタンス変数の取得や変更はアクセッサで対応。
703 Name: 名称未設定 [sage] Date: 2008/03/28(金) 20:14:06 ID: UD2Wl/tj0 Be:
具体的なコードがさっぱりなんです。
例えば複数の変数を渡したい場合とか(辞書にして渡すんですかね)。
704 Name: 名称未設定 [sage] Date: 2008/03/28(金) 20:24:05 ID: 7FojMQQe0 Be:
それは Obj-C 一般の問題?
それとも本当に IBAction に複数変数を渡したいばあい?
前者ならとりあえず
http://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/chapter_1_section_1.html
を読むこと。
後者なら ... う~ん、IBAction はそういうことにつかうものではないので、
別の方法を考えてください。
705 Name: 名称未設定 [sage] Date: 2008/03/28(金) 21:05:06 ID: Q/pibkmJ0 Be:
>>703
具体的な質問をしない→具体的な回答が得られない→具体的なコードがサッパリ

のループ
706 Name: 名称未設定 [sage] Date: 2008/03/28(金) 23:47:16 ID: HRFh0B/+0 Be:
ここでデルフォイの神託↓
707 Name: 名称未設定 [] Date: 2008/03/29(土) 17:59:44 ID: pthSyDXZ0 Be:
すいませんちょっと教えてください
サンプルソースコードを見ていたら#pragma markという行がありました
デフォルトで茶色く表示されていて、特に意味はないというかコメントアウトされている
ようにも見えます。#からはじめると茶色いコードになるのですが、これはどういう文法なんでしょう。
708 Name: 名称未設定 [sage] Date: 2008/03/29(土) 18:06:29 ID: tFrxc/KV0 Be:
Xcode のエディタ画面の中で、ツールバーと本文との間に細いバーがあるでしょ。
そこのポップアップ中に見出しが付きます。
709 Name: 名称未設定 [] Date: 2008/03/29(土) 18:42:33 ID: pthSyDXZ0 Be:
>>708
本当だ…ありがとうございます。
これは名前はpragma markで良いんでしょうか?自力で調べた際、マニュアル、googleなどを
検索したのですが引っかかってくれませんでした。自力で調べるにはどういう所を見たら良かったのでしょう…
710 Name: 名称未設定 [] Date: 2008/03/29(土) 20:07:40 ID: u+FJ7Dui0 Be:
c言語の仕様の方を調べた方が良いかと。
"C言語 pragma"で出てくるけど?
711 Name: 名称未設定 [] Date: 2008/03/29(土) 20:46:49 ID: pthSyDXZ0 Be:
>>710
Cのほうだったんですね
pragma markで調べたのがいけなかったみたいです。もっと
検索結果を辿るようにしますね
712 Name: 名称未設定 [sage] Date: 2008/03/29(土) 23:07:22 ID: fh2Kw5/j0 Be:
#pragmaってのはCのコンパイラディレクティブで、その中身についてはCの仕様では定められていない(C99除く)ので、コンパイラなどの開発者が自由に使える。
で、#pragma markってのはXcodeでコードナビゲートのために使われるようになってる。

今気づいたんだけど、CotEditorも#pragma mark認識してくれるんだね。
713 Name: 名称未設定 [sage] Date: 2008/03/29(土) 23:19:36 ID: ybcJXnIv0 Be:
Xcodeでは見えないのですが、他のエディターで開いたら
キャラクターコード0X0Bの文字?がちらほら点在していました。

別に害は無さそうなのですが気持ち悪いので置換で消していきました。

これは何なのでしょうか?
714 Name: 名称未設定 [sage] Date: 2008/03/29(土) 23:36:13 ID: nkexAG6m0 Be:
#pragma mark ってCodeWarriorのときから使ってたから一般的なのもだと思ってた。
昔はメニューのセパレートアイテムがキャプションが-の普通のメニューアイテムだったから、
#pragma mark -
もためらいもなく使ってたし。
715 Name: 名称未設定 [sage] Date: 2008/03/30(日) 17:16:10 ID: u8YBSmaQ0 Be:
質問させてください。
CoreAnimation のレイヤーをマウスでクリックしたりドラッグしたりと
いったマウスイベントをつかまえるには、どのような実装方法がある
でしょうか。

Apple のドキュメントや、GeekBoardGame というApple のサンプルコードを
のぞいてみましたが、どうしても分かりません。
よろしくお願いします。
716 Name: 名称未設定 [sage] Date: 2008/03/30(日) 22:05:17 ID: 2sWOwdrZ0 Be:
Core Data アプリ(non document based)で、あるエンティティの属性 (double)
の値を変えたとき、テーブルに表示中のその値はアップデートされているのですが、
一旦アプリを終了して再び立ち上げると、その値がアップデート前の値に戻って
います。

non document based でテンプレート通りなので、アプリ終了時に変更があった
オブジェクトが save されているはずと思うのですが(NSSQLiteStoreType)、
特にエラーメッセージも出ずに終了しているにも関わらず、上記の現象が起きます。

アプリ終了前にメニューから save をしても同じです。

エラーメッセージも無いので、どこをどう調べれば良いのか見当がつきません。
同じような現象が起きた方はいるでしょうか。
717 Name: 名称未設定 [sage] Date: 2008/03/30(日) 22:18:28 ID: czG3gy6y0 Be:
単に property が transcient になっているのでは?
718 Name: 716 [sage] Date: 2008/03/30(日) 22:28:45 ID: 2sWOwdrZ0 Be:
transient ではないです。
transient だとアップデートする以前の値も無くなりますが、
最初にオブジェクトを作成して値を設定したときの値は残っています。
719 Name: 名称未設定 [sage] Date: 2008/03/30(日) 22:29:07 ID: P6vlUqGx0 Be:
終了する前にアレイコントローラーの中身をログにダンプするとか。
720 Name: 716 [sage] Date: 2008/03/30(日) 22:34:09 ID: 2sWOwdrZ0 Be:
アレイコントローラの中身はテーブルに表示しているので、
アレイコントローラーの中(というか managedObjectContext の中)は
アップデートされていると思うのですが、それを SQLite にセーブして
くれてないような気がします。

アップデートした mangedObject の isUpdated は、アップデート後に
ちゃんと YES になっているのですが‥
721 Name: 716 [sage] Date: 2008/03/31(月) 10:17:28 ID: HMoNdkog0 Be:
716=720です。
720 の isUpdated は、YES ではなく NO でした。失礼しました。

いろいろ試したところ、

アップデートしたい NSManagedObject * = UpdatingObject
アップデートしたい属性 = attrName
アップデート後の値 = newValue として、

[UpdatingObject setValue: newValue forKey: @"attrName"];

とすると、[UpdatingObject isUpdated] = NO で 716 の不具合が起き、

[UpdatingObject willChangeValueForKey: @"attrName"];
[UpdatingObject setValue: newValue forKey: @"attrName"];
[UpdatingObject didChangeValueForKey: @"attrName"];

とすると、[UpdatingObject isUpdated] = YES で動作するようになりました。

ただ、[UpdatingObject setValue: newValue forKey: @"attrName"];
だけではダメな理由がわかりません。
722 Name: 名称未設定 [sage] Date: 2008/03/31(月) 12:49:08 ID: tw5a8Ttq0 Be:
>>721
>アップデートしたい NSManagedObject * = UpdatingObject

データモデルを作成すると、Xcodeのファイル作成メニューから
設計ー管理オブジェクトクラスというファイルが作成できる
ようになる。
ここからクラスファイル(MyUpdatingObject.m/.h)を作成すると
アクセッサを自動生成してくれる。中身は>>721の記述通り。
MyUpdatingObject *UpdatingObject;

[UpdatingObject setAttrName:newValue];

って感じで記述できるよ。
なんでか?Managedだからじゃねーかな。

723 Name: 名称未設定 [sage] Date: 2008/03/31(月) 22:49:48 ID: rGDOmSZV0 Be:
サーバーの自作cgi(リクエストを受けると文字列を返す)と連携してリクエストをなげ、
受け取ったらローカルのファイルに書き出すとか簡単にできてしまいのですが、
危なくないですか?

こういうことをしないのは暗黙の了解というか作者の善意を信じるしかないのかな。
724 Name: 名称未設定 [sage] Date: 2008/03/31(月) 23:06:51 ID: p7HEBNDt0 Be:
>>723
誤爆?
725 Name: 名称未設定 [sage] Date: 2008/04/01(火) 19:22:21 ID: GBWhnfph0 Be:
いや、誤爆でもないんですけど。
そういう悪さが簡単に作れるなあと。
ファイルマネージャとか使えばさっくり消すこととか出来そうだし。
726 Name: 名称未設定 [sage] Date: 2008/04/01(火) 20:12:11 ID: Yn+xP8iA0 Be:
???
そもそも Cocoa と関係ないし。ファイルマネージャって何?
旧 Mac の Toolbox の File Manager のことを言ってる?
727 Name: 名称未設定 [sage] Date: 2008/04/01(火) 21:53:00 ID: 3igSZGd/0 Be:
NSFileManagerだべ
728 Name: 名称未設定 [sage] Date: 2008/04/01(火) 22:19:15 ID: eXrA1oFt0 Be:
???
NSFileManager つかったらファイルの削除ができるのはあたりまえでは?
もちろんユーザ権限だったらそのユーザのファイルしか消せないけども、
ホームディレクトリ以下を全削除するコードなんか一瞬で書けるし、
かけて当たり前なのでは?
729 Name: 名称未設定 [] Date: 2008/04/01(火) 22:26:44 ID: jR83I/kp0 Be:
>>723
日本語でおk
730 Name: 名称未設定 [sage] Date: 2008/04/01(火) 22:43:42 ID: 1fF/yTEl0 Be:
cgiのくだりもわからない。なんの話なのだろう。
731 Name: 名称未設定 [sage] Date: 2008/04/02(水) 01:07:11 ID: oGnR8u+90 Be:
一度開いたらシステムオワタなアプリなら作れる
ダウンロードして開かなきゃ発動しないけど
732 Name: 名称未設定 [sage] Date: 2008/04/02(水) 09:07:28 ID: 0/6aE/N0O Be:
>>731
ユーザによる権限昇格もせずに?

と思ったけど、起動出来なくするぐらいなら出来るか。
733 Name: 名称未設定 [sage] Date: 2008/04/02(水) 12:36:09 ID: 6v8Mex7Q0 Be:
ユーザーとの対話なしにローカルファイルの読み書きや
webへのアクセスが出来てしまうのが
当たり前と言えば当たり前ですが、恐いと言えば恐いかなと。
734 Name: 名称未設定 [sage] Date: 2008/04/02(水) 12:56:05 ID: yfTxC+5o0 Be:
>>733
何が言いたいのだ?
web へのアクセスをユーザにさせたくなきゃ,
フィルタリングでカットすればいいだけだろ?
ローカルファイルも権限があるから勝手に読み書きできないよ.
セキュリティを良く分かってないんじゃないか?
735 Name: 名称未設定 [sage] Date: 2008/04/02(水) 13:20:21 ID: S1IGWmHn0 Be:
そんなのCocoaに限らずコンピュータプログラム全般に言えることじゃないかと
アプリがファイル読み書きやらネットワークアクセスの度に
ダイアログ出てきたら鬱陶しくて実用にならない
Leopardなら初回だけネットワークの許可ダイアログでてくるけど
736 Name: 名称未設定 [sage] Date: 2008/04/02(水) 15:16:06 ID: sidBbuG/0 Be:
なにかもう一つしっくり来ないな。
>733は自分が思っていることを正しく伝えられてない気がする。
737 Name: 名称未設定 [sage] Date: 2008/04/02(水) 15:52:56 ID: tcfMAI1p0 Be:
いずれにせよCocoaとは関係のない話だな。
738 Name: 名称未設定 [sage] Date: 2008/04/02(水) 19:58:47 ID: Akvr86Ga0 Be:
cocoa というより C の文法の問題かもしれませんが、
探しても出てこないので教えてください

if( hoge ) {
}

のように条件式なしで単純に変数が条件になっているのは、
どのような条件なのでしょうか?
739 Name: 名称未設定 [sage] Date: 2008/04/02(水) 20:16:40 ID: tcfMAI1p0 Be:
if( hoge ) { }

if(hoge!=0) { }
はまず等価。
740 Name: 名称未設定 [sage] Date: 2008/04/02(水) 20:17:21 ID: +bRTpxfj0 Be:
0 が偽 それ以外が真。
大抵は hoge がオブジェクトで、それが存在するかを調べる時に使う。
hoge == NULL
ならその条件式は偽です。

NSString *hoge = [NSString stringWithContentsOfFile:@"hoge"];
if(!hoge) return NO;
とかする。
でも、
int length = [hoge length];
if(!length) return NO;
とはせず、
if(length == 0) return NO;
とする。
俺は。
741 Name: 名称未設定 [sage] Date: 2008/04/02(水) 20:25:20 ID: S1IGWmHn0 Be:
if (ここに書かれた式の"結果"が真か偽かが条件判定されるだけで式の形は問わない)

0かnilなら偽、それ以外は真
逆に言うと普段使ってる hoge == 10 みたいなのは
実際はこの式全体が真か偽かを返してる
つまり

int hoge = 10;
if (hoge == 10) {
}

これと

int hoge = 10;
BOOL result = (hoge == 10);
if (result) {
}

これは同じ
742 Name: 名称未設定 [sage] Date: 2008/04/02(水) 21:26:11 ID: dNRbq4FU0 Be:
そういえばCでは
if(a==0)ではなく
if(0==a)と書くのが流儀なんですかね?

if(0<a)なんて直感的にすごく分かりにくいのですが。
743 Name: 名称未設定 [sage] Date: 2008/04/02(水) 21:32:00 ID: FSuKVIs40 Be:
>>742
そんな流儀はじめて聞いた
自分に分かりやすい方でいいんじゃないの?
744 Name: 737 [sage] Date: 2008/04/02(水) 21:33:46 ID: Akvr86Ga0 Be:
>>738-740
ていねいかつ分かりやすい説明、ありがとうございました。
勉強になりました。
745 Name: 名称未設定 [sage] Date: 2008/04/02(水) 21:34:28 ID: 7R9AhKh80 Be:
>>742
定数を左辺に書くのはどちらかというと痛い書き方。
746 Name: 名称未設定 [sage] Date: 2008/04/02(水) 21:42:19 ID: vRQV2HU10 Be:
>>742
if (a=0)
と書きまちがえるとaに代入されてしまい
意図した動作にならないのを嫌って、定数を左辺とすることを推奨する人たちがいます。
仕事やなんやで指定されない限りは、(a==0)で問題ありません。
747 Name: 名称未設定 [sage] Date: 2008/04/02(水) 21:43:42 ID: +bRTpxfj0 Be:
>>742
if(0==a)
のつもりで
if(0=a)
としてしまうとエラーになるから、間違えない。
という主張の方々の作法。
これに同調するなら使いましょう。って感じ。
ただし、たまに「でなければならない。おまえらこの通りにしろ。」という方もいる。
そういう人は確かに痛い。
748 Name: 名称未設定 [sage] Date: 2008/04/02(水) 21:47:40 ID: w0ZmM/ml0 Be:
1~10の範囲は
if ((1 <= a) and (a <= 10))
と書くのが数直線のイメージとも一致して自然だと思う。
749 Name: 名称未設定 [sage] Date: 2008/04/02(水) 21:58:35 ID: RS/f+MuZ0 Be:
最初
if (self = [super init]) {}

if (self == [super init]) {}

と勘違いして小一時間悩んだのを思い出した。
750 Name: 名称未設定 [sage] Date: 2008/04/03(木) 16:23:37 ID: 1jV0CkCd0 Be:
return [self なんたら];
っていうのは普通?

慣れてくると、
return [self なんたら:[self こうたら:[self うんたら:[self ちんたら]]]];
とか書いて、訳分かんないけどw
751 Name: 名称未設定 [sage] Date: 2008/04/03(木) 17:11:17 ID: 3DcvdVmn0 Be:
CICropって切り抜いたあとの画像に1px幅の黒枠が入る様な気がするな・・・。
752 Name: 名称未設定 [sage] Date: 2008/04/03(木) 22:40:16 ID: 2SfSkV4V0 Be:
>>749
ワロタwwww
753 Name: 名称未設定 [] Date: 2008/04/04(金) 00:15:33 ID: XKzIgRMV0 Be:
すいません、Xcodeスレから来たのですが、告知させて下さい
ADCのリファレンスを日本語化しようというwikiサイトをこの度立ち上げました
Cocoa以外のドキュメントも扱っています。ページ作成のテンプレも用意したのでデベロッパの方々に
気の向いた時に参加していただけると嬉しいです。ここ数日で仕上げたので不備も多かろうと思いますが
ご意見あればお願いします。ちなみにまだGoogle検索では引っかかりません

Cocoaリファレンス日本語化計画(CRJP)トップ
http://www11.atwiki.jp/cocoareferencejp
資料ページ作成の手順
http://www11.atwiki.jp/cocoareferencejp/pages/13.html
ディスカッションボード
http://www11.atwiki.jp/cocoareferencejp/pages/22.html
754 Name: 名称未設定 [sage] Date: 2008/04/04(金) 02:09:19 ID: XiP7FG7p0 Be:
MOSAで活動すればいいのでは?
権利関係は?
755 Name: 753 [] Date: 2008/04/04(金) 02:39:22 ID: XKzIgRMV0 Be:
MOSAは確か会員登録が必要だし、登録は有料だと思ってました
wikipediaみたいな感じで誰でも編集できるこの形式の方が良いかと思いまして
Appleの公認はとってません。ひっそりやっていって怒られたら非公開形式かな、
というつもりでした。

大したことは書いてませんが、こっちで話を振っていました
Xcode part6
http://pc11.2ch.net/test/read.cgi/mac/1201693264/373
756 Name: 名称未設定 [sage] Date: 2008/04/04(金) 15:07:34 ID: prN6n9yx0 Be:
>>755
ttp://www.oomori.com/cocodesu/index.html
757 Name: 名称未設定 [sage] Date: 2008/04/04(金) 15:51:58 ID: Jkegj/2g0 Be:
>>756
私もそこを利用しています。

なので、>>753 のやつは、リファレンス和訳に加えて、
Tips や サンプルコードなんかをみんなで持ち寄って、
リファレンス以上に使える Wiki にすればいいんじゃないでしょうか?
758 Name: 名称未設定 [sage] Date: 2008/04/04(金) 15:59:39 ID: uwaesjVF0 Be:
つかリファレンス程度の英文なんてそのまま読んだ方が正確に情報が伝わるし、
それが前提だと思うんだけどなあ。
必要なのはAPIこまかい動作やふるまいに関する情報だと思うよ。
759 Name: 名称未設定 [sage] Date: 2008/04/04(金) 16:18:59 ID: l0Z2BlMo0 Be:
オプションクリックっていってすぐ分かる人も居れば、
オプションキーの位置まで説明しないといけない人も居る。
欲しがってる情報も人それぞれだ。

それに、その勝手な前提を廃しようって動きでしょ、これは。
760 Name: 名称未設定 [sage] Date: 2008/04/04(金) 19:11:54 ID: /NxtDvi20 Be:
まあまあ。
参加したいひとは参加するスタイルでいいでしょう。
参加しない人は文句を言わないこと。
761 Name: 名称未設定 [sage] Date: 2008/04/04(金) 21:16:00 ID: vKak/UUC0 Be:
今760がいいこと言った
762 Name: 753 [sage] Date: 2008/04/04(金) 23:04:20 ID: XKzIgRMV0 Be:
皆さん意見ありがとうございます。私見を述べさせてもらうと
>>756のようなサイトがあればwikiにどんどんリンクを作って、その結果
ただのリンク集となっても資料の整備と言う意味ではある程度役立つwikiに
なるのかな、なんて思っています。もちろんリファレンス以外で存在しない和訳も
ありますし。
>Tips や サンプルコードなんかをみんなで持ち寄って
個人的にはありかなと思ってます。ただ、「じゃあこのタイトルじゃなくて良い」と
言われればそれまでなのでwikiの位置づけをどこまで拡張するかなどなど議論になりそうかと

Cocoaに限りませんが、Mac環境の日本語ドキュメントの少なさにしょんぼりされたことの
ある方は多いんじゃ無いかと思っています。私の場合リファレンスを読む時もある程度頭の中で和訳されて
いるので、せっかくだから残しておこうという発想で作ってみました。興味をもってくれた方は専用スレを
たてたのでたまにのぞいてみて下さい。おもいっきり宣伝ですいませんでした

Cocoaリファレンス日本語化計画
http://pc11.2ch.net/test/read.cgi/mac/1207312910/
763 Name: 名称未設定 [sage] Date: 2008/04/05(土) 02:13:32 ID: xuMvYKd50 Be:
spotlightのようにボタンを押すとNSSearchFieldが表示されるような
仕組みを実装したいのですが、どうすれば良いのでしょうか?

なかなか難しそうな気がしますが、お知恵を拝借できればと。
764 Name: 名称未設定 [sage] Date: 2008/04/05(土) 12:41:31 ID: OQL0ZhO70 Be:
Leopardからはメニューアイテムにビューを設定できるようになったから、それを使えばできると思う。

メニューじゃなくて普通のボタンを押したらってことなら、
タイトルバーなしのウインドウを作ってそれをボタンの下に表示させればいいと思う。
765 Name: 名称未設定 [sage] Date: 2008/04/05(土) 14:41:54 ID: Jtj5sLxQ0 Be:
NSSearchField の isHidden に、その spotlight 風のボタンを
バインディングさせればいいんじゃない?
766 Name: 名称未設定 [sage] Date: 2008/04/05(土) 15:13:29 ID: ukfQWxvp0 Be:
お知恵提供ありがとうございます。
やはり別途ウインドウを作る方法が正攻法ですかね。(10.4互換にしたいので)
hiddenの表示切り換えも試してみます。
767 Name: 名称未設定 [sage] Date: 2008/04/05(土) 15:26:45 ID: VhLW+d8P0 Be:
ついでに質問しますが、OSX の mail とか バチスカの右下の
プルダウンするボタンは、>>764 のようにタイトルバーなしの
ウィンドウを出現させてるだけですよね。
面倒だなー...
768 Name: 名称未設定 [sage] Date: 2008/04/05(土) 17:27:01 ID: ExPL2bEA0 Be:
もっと簡単ですよ。
ボタンのサブクラスを作ってNSMenuを表示させてるだけ。
どっかにコードがあったはずだけど失念。
769 Name: 名称未設定 [sage] Date: 2008/04/05(土) 20:24:44 ID: Y9HuUKt0P Be:
mkinoさんあたりが書いてた気がする
770 Name: 名称未設定 [sage] Date: 2008/04/05(土) 20:46:11 ID: OQL0ZhO70 Be:
これかな?
http://blog.cocoa-study.com/?eid=292168
771 Name: 767 [sage] Date: 2008/04/05(土) 22:46:12 ID: VhLW+d8P0 Be:
>>768-770
URLまで張っていただいて感謝です。
ありがとうございました。
772 Name: 名称未設定 [sage] Date: 2008/04/08(火) 23:05:59 ID: +rnkpamp0 Be:
すみません、いまいちメモリ管理が理解できなくて試行錯誤しております。
retain/release/autoreleaseで、この書き方は正しいでしょうか?
sampleMethodでretain/rekeaseは不要なのでしょうか?

- (void)sampleMethod
{
NSMutableArray *array = [[self createMutableArray] retain];

// arrayでいろいろ処理する

[array release]; // 下のmutableArrayも解放される?
}

- (NSMutableArray*)createMutableArray
{
NSMutableArray *mutableArray = [[[NSMutableArray alloc] init] autorelease];
int i;
for(i = 0 i < 10; i++){
[mutableArray addObject:[NSNumber numberWithInt:i]];
}
return mutableArray;
}
773 Name: 名称未設定 [sage] Date: 2008/04/08(火) 23:08:22 ID: GYQua+Y+0 Be:
> sampleMethodでretain/rekeaseは不要なのでしょうか?
その通りです。
774 Name: 名称未設定 [sage] Date: 2008/04/09(水) 00:23:26 ID: ymQ4vGb/0 Be:
下のmutableArrayは
NSMutableArray *mutableArray = [NSMutableArray array]; で良くね?
775 Name: 名称未設定 [sage] Date: 2008/04/09(水) 00:39:40 ID: cZrt3QD80 Be:
create~っていう名前だと、retain されたオブジェクトが返ってくるような感じがする。
776 Name: 名称未設定 [sage] Date: 2008/04/09(水) 00:57:57 ID: tXkLT69P0 Be:
ありがとうございます。
>>773
やっぱり入らないんですね。

>>774
まだ10.4なんですが、そうするといつreleaseされるのですか?
(10.5なら不要っぽい気もしますが)

>>775
名前は適当に考えたのでご勘弁を。
777 Name: 名称未設定 [sage] Date: 2008/04/09(水) 01:03:44 ID: sa4g27di0 Be:
>>776
その時の NSAutoreleasePool が破棄されるときじゃね?
ttp://wwwa.dcns.ne.jp/~nito/CocoaClub/article03.html
読んで解らなかったらまた
778 Name: 名称未設定 [sage] Date: 2008/04/09(水) 07:53:51 ID: Ji3vsIov0 Be:
>>776
>名前は適当に考えたのでご勘弁を。
じゃなくて、Cocoa / CoreFoundation はメソッドの名前で
autorelease されたものが返されるか retain されたものが
返されるかきまってるので。

Cocoa なら initほげほげ、copyほげほげ は retain されたものがかえる、
それ以外は autorelease されたものがかえる。
CF なら CF...Create... や CF...Copy... なら retain されたものが、
CF...Get... なら relase する必要のないものが返ってきます。

だから自分でメソッド名をつくるときもそれに従っておいたほうがいいです。

うえの [NSMutableArray array] の例では、
メソッドの名前に init / copy がないので、
autorelease されたものがかえってきます。
多分内部では [NSMutableArray array] は
[[[NSMutableArray alloc] init] autorelease]
と一緒だと思います。
779 Name: 名称未設定 [sage] Date: 2008/04/09(水) 09:20:43 ID: HThbF4Ur0 Be:
返ってくるっていうか、
返る事が期待されてるって事じゃなかったっけ?
create~とかmake~とかの場合はオーナーシップがそのメソッドにあって、
そのなかでちゃんと保持されてる設計にしないといけないとか、
そういうデザインパターンじゃなかったか?