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

このエントリーをはてなブックマークに追加
1名称未設定
初心者は教えてくれる方への感謝を忘れずに。
上級者も初心者だった頃の気持ちを忘れずに。

前スレ
Cocoaはさっぱり!!! Version.3
http://pc5.2ch.net/test/read.cgi/mac/1063295248/
2名称未設定:04/08/08 10:13 ID:BxJfhJej
ココアはやっぱり森永。2get
3名称未設定:04/08/08 11:41 ID:/JfrC3cn
ココア何処?
4名称未設定:04/08/09 08:06 ID:HMNMhMFQ
ほっしゅ、ほっしゅ。
5名称未設定:04/08/10 10:41 ID:9qg4wdM9
Cocoa 開発環境 Xcode 1.5
http://pigpen.memphis.edu:6969/
6名称未設定:04/08/11 16:16 ID:K+bUKQul
Cocoa対応マルチプラットフォームフレームワーク wxWidgets
http://www.wxwindows.org/
7名称未設定:04/08/11 23:50 ID:wtfGuwVK
>>6
wxWidowってC++のフレームワークじゃなかったっけ?

普通に考えるとCarbon対応だと思うのだが。もしやObjective-Cへのラッパーとか搭載したとかなのか?
とりあえずざっと眺めた感じじゃそういう記述は見当たらなかったんだが。
8名称未設定:04/08/12 10:21 ID:polUM6OC
cocoaアプリケーションで
fopen( "file", "r" )
とやると失敗するけど、これを回避する方法はあるのかな?

フルパスで指定すればfopen()が成功するのは確認しているけど、
それだと直さなきゃいけないソースコードが多すぎて、やりたくない。

アプリケーションがカレントパスを認識できれば動くと思うんだけど。。。
ビルドと実行だと正常に動くのに納得いかないなぁ。
9名称未設定:04/08/12 23:24 ID:DOX6Vp6n
>7
よく探すとCocoa対応のがあるよ。ベータだけど。

>8
fopenを使わないか、fopen_wrapperとか作って一括置換すりゃいいじゃん。
10名称未設定:04/08/13 02:43 ID:v9ctjMSr
>>9
( ・∀・)つ〃∩ ヘェー
そうなのか。ちょいとよく探してみるべかな
Cocioa呼び出しするフレームワークが他にもいろいろ出てくると面白いね。
11名称未設定:04/08/16 20:20 ID:zgJ00YEw
Cocoaからラベルを参照する事はできないんでしょうか。
マカエレのログをラベルで管理するツールを作りたいんです。
12名称未設定:04/08/23 06:42 ID:AFylXCQz
沈み過ぎ
13 ◆Z0vd5w812U :04/08/24 11:25 ID:d8Aur08l
お尋ねします。これからCocoaに手を出そうとしています。
非矩形ウィンドウの生成は可能でしょうか?
Windowsでは「非矩形」や「リージョン」で検索すればサンプルが
多数出るのですが、Cocoaでの検索キーワードすら分からない状態です。
14名称未設定:04/08/24 11:40 ID:iO9BUeXU
15名称未設定:04/08/24 11:45 ID:w9Hr4pA0
>>13
http://www.miyakun.com/cocoa/
あたりが参考になるかな
16 ◆Z0vd5w812U :04/08/24 17:08 ID:d8Aur08l
>>14>>15
おおお、ありがとうございます。ずばり、それです。
なるほど、Cocoaの場合はウィンドウそのものの透過をOpaqueで、
ウィンドウに描画した画像はAlphaで指定するのですね。
「頻繁にflushするとパフォーマンスに影響が、、」という表記が
ちょっと気になりますが、試してみます。
17名称未設定:04/08/31 16:11 ID:2IIiI3dk
http://mugiwara.jp/Software/AppInfoX.html#WPhtml
こちらのWPhtmlをRSSを出力するように改造しようとビルドしてみたんですが
エラーが出てしまいます。古いProject Builderも試してみたんですが同様です。
どこを修正すればいいんでしょうか?
18名称未設定:04/08/31 17:00 ID:BtUL8mxp
Targets > WPhtml > Settings > Simple View > Search Paths > Librariesの
/usr/lib/gcc/darwin/3.1を3.3にしたら通った。
19名称未設定:04/08/31 17:07 ID:2IIiI3dk
>>18
ありがとうございます兄貴。
20名称未設定:04/08/31 17:39 ID:2IIiI3dk
デキタ━━━━━━(゚∀゚)━━━━━━!!!
RSSで書き出してSafariStandのStand Bar RSSから
Open Multiple Bookmarksで更新サイトの一括アクセスが超便利
長い間これがやりたかった

改めて感謝致します >>18
21名称未設定:04/09/01 19:54 ID:3IMyHQ+Y
NsMovieViewをcontorl+クリックしたときの
メニューを非表示にする事はできるんでしょうか?

mouseDownをオーバーロードしても、
controlを押しているときだけは処理が入ってきません。

ユーザーがムービーを制御できないようにしたいので、
再生・停止が出来るメニューが出てくると困るんですが。。。
22名称未設定:04/09/01 20:11 ID:X5yAk+nc
NSViewの
- (NSMenu *)menuForEvent:(NSEvent *)theEvent
をオーバーライドすれば良いんじゃない?
23名称未設定:04/09/01 20:25 ID:3IMyHQ+Y
お、きた。
>22 ありがとうございます。
24名称未設定:04/09/01 22:14 ID:0/BZadaA
質問です。NSTableViewの中でテキストセルを編集してリターンやタブを押すと
次の行や列に自動で編集が切り替わりますが、あれは具体的にはどこでやっている処理なんでしょうか?
NSTableViewにはテキストの編集に関するメソッドがいくつか用意されていますが
一通り調べてみてもどこで何が呼ばれているのかわかりませんでした...
25名称未設定:04/09/01 22:31 ID:ljzvK/Bx
「どこでやっている処理」という表現が良く分からんのだが。
- (BOOL)textShouldEndEditing:(NSText *)textObject;
- (void)textDidEndEditing:(NSNotification *)notification;
あたりで編集が終わ(る|った)ことを知ることができないか?
26名称未設定:04/09/01 22:52 ID:0/BZadaA
いや、そうではなくて、セルの編集中にタブやリターンを押すと次のセルに編集が移るわけですが、
その命令が(おそらくテーブルの)どのメソッドの中で出されているのかがわからないんです。
27名称未設定:04/09/01 23:00 ID:0/BZadaA
あ、すいません。解決しました。
テーブルの editColumn:row:withEvent:select: で捕まえられるんですね。
28名称未設定:04/09/01 23:02 ID:0BtJa80i
自分の質問をもう一度読み返してみる事をおすすめします。
セル移動はトレースしてみるとすぐわかりますが途中フックはできませんよ。
29名称未設定:04/09/01 23:29 ID:0/BZadaA
>>28
単純にあのセル移動を禁止することはできるんでしょうか?
ほとんどのソフトはああいう挙動はしませんよね。
30名称未設定:04/09/02 00:31 ID:Lld4DGUv
NSCell か NSControl の
- (int)sendActionOn:(int)mask;
でセル移動を禁止できないだろうか。
いや、勘だが。
31名称未設定:04/09/03 15:27 ID:+ZA3Lm3T
NSComboBoxのリストを表示する命令はないのかな?
safariのURLバーのように、文字列が入力されたときに自動でリストを出したいんだけど。
32名称未設定:04/09/03 16:18 ID:QrV74Dn0
ほんと、GUIを制御するメソッドは秘密になってるのが多くて困るんだよねえ
33名称未設定:04/09/09 18:59 ID:6oHHNVBW
キーイベントを強制的に発生させる関数って公開されてる?
ComboBoxの編集中に下矢印が押されたという命令を
強制的に発生させれば、リスト表示できるかなーとか考えたんだが。
34名称未設定:04/09/09 21:24 ID:btnpZUJh
>>33
↓キーを押したNSEvent作ってcomboboxのcurrentEditorに keyDown: で送ればどうか
35名称未設定:04/09/09 22:30 ID:/qK9zvH8
>>33
[[comboBox cell]popUp:comboBox];
3635:04/09/09 22:34 ID:/qK9zvH8
あ、33じゃなくて31にレスにした方がよかったな
けどまあヘッダに公開されてるメソッドじゃないけれど
3731=33:04/09/10 09:49 ID:dpUHjlPE
>35
期待通りの動きができました、ありがとうございます。
(キーを押した瞬間にリストを表示したかった)
で、非公開のメソッドってどうやって見つけてるかな?
ヘッダに載ってないメソッドを調べる方法があるなら教えて欲しいんだけど。
38名称未設定:04/09/10 14:43:10 ID:TavsLYTP
>>37
ttp://www.codethecode.com/Projects/class-dump/

class-dump -H /System/Library/Frameworks/AppKit.framework/AppKit
とするとクラスごとに分かれたヘッダファイルをカレントディレクトリに作る
まとめて1ファイルに書き出したいなら
class-dump /System/Library/Frameworks/AppKit.framework/AppKit > appkit.h
などとする
書き出されたヘッダファイルには隠しメソッドも載っている
39名称未設定:04/09/11 10:54:16 ID:zktSdYGO
>38
「command not found」って返ってきちゃう…。
なにか間違ってるのかな…?
40名称未設定:04/09/11 11:14:27 ID:ueWVtJfw
>39
ちゃんとclass-dumpをパスの通ったとこに置いてる?
which class-dumpってしてみそ。
4139:04/09/11 13:12:51 ID:fd/QIepv
>40
サンキュ! パスが通ってなかっただけだった(恥
42名称未設定:04/09/16 16:50:01 ID:bV4AGSbo
NSSplitViewでスプリットバーの位置をプログラムからコントロールする
方法ってないですか? いろいろ調べてはみたけどわからない。
43名称未設定:04/09/16 17:22:08 ID:glnzHTt3
>>42
subviewのframeを直接変更するしかない
その後で[NSSplitView adjustSubviews]
44名称未設定:04/09/16 18:57:25 ID:bV4AGSbo
>>43
ありがとう。やってみる。
4542:04/09/16 19:19:00 ID:bV4AGSbo
残念ながらうまくいきませんでした。subViewが小さくなるだけで
スプリットバーの位置はそのまま。逆に反対側のsubViewも大きく
してみても同じでした。

Xcodeではプロジェクトを閉じる時にスプリットバーの位置を記憶
しているみたいなので出来るはずなんだけど、やり方がわからない。
46名称未設定:04/09/16 19:51:16 ID:oFS8A0dj
4742:04/09/16 20:38:49 ID:bV4AGSbo
>>46
おおっ。やろうとしていることがズバリ出ているっ!!
ありがとう。
48名称未設定:04/09/20 16:01:48 ID:RxqSJ3wF
画像を綺麗に縮小して表示したいんですが、
[[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];
を使っても変化がないようなんです。
NSImageViewへのsetImage: の直前、ImageViewのサブクラスを作りdrawRect: 中で試してみたんですが効果がありません...
描画後に currentContext に imageInterpolation をしてみるとNSImageInterpolationHighが帰ってくるので
interpolation自体は変更されてるようです。どこか勘違いしてますでしょうか?
49名称未設定:04/09/20 16:12:06 ID:RxqSJ3wF
すいません。自己解決しました('A`)
扱っていた画像の形式に問題があったようです。
50名称未設定:04/09/21 20:00:37 ID:gBbQKlQW
IBに定義せずにボタンなどを生成して利用できますか?
cocoa開発のメリットがないやり方だと思いますが。。。

ある関数に問い合わせを行うと、適当な数値が返ってきて、
その数に応じてボタンを配置したいのです。
51名称未設定:04/09/21 20:08:22 ID:aqnBnSOM
手間かかるけど、できる。
しかし、わざわざ生成するんじゃなくて、
予め IB でボタンを生成・配置・透明化しておいて、
必要な時だけ透明化を解除する方が賢いな。
もし、そういう方法が許されるんであれば。
52名称未設定:04/09/21 22:09:38 ID:K/f42Xxk
便乗質問しとこっと。
例えば、NSButtonをコードで配置する場合、NSButtonを表示する前にNSButtonCellをつくって
やらないといけなかったと思うけど、こういう依存関係(?)って何を見れば明らかになりますか?
53名称未設定:04/09/21 23:56:31 ID:Z4ODfE1N
エクスポゼ中かどうかアプリから調べる方法ありませんか?
ポゼ中にウインドウのlevelを変えるとポゼが解除されてしまうので
ポセ中だとlevelを変えるのを一時的に遅らせたいのです。
54名称未設定:04/09/25 00:57:55 ID:04MYKyr3
テーブルビューの項目を右クリックで選択できるようにするには、
どうすればよろしいか?
右クリックで選択と同時に、コンテクストメニューも表示させたいんです。
55名称未設定:04/09/25 12:07:20 ID:7do9o7o9
>>54
NSTableViewのサブクラスを作り、
- (NSMenu *)menuForEvent:(NSEvent *)theEvent
{
int row=[self rowAtPoint:[self convertPoint:[theEvent locationInWindow] fromView:nil]];
if(![self isRowSelected:row])[self selectRow:row byExtendingSelection:NO];
if(row>=0){
//独自のメニューを出したいならここで処理
return [self menu];
}else{
return nil;
}
}
てな感じで
5654:04/09/25 21:35:20 ID:04MYKyr3
>>55さん。
問題解決しました。ありがとうございました。
57名称未設定:04/09/29 17:25:50 ID:Tiw0H2aS
NSQuickDrawViewのサブクラスを作って、そこでPictureを描画することも
Picutureをファイルに保存することも出来るのですが、なぜか印刷すると
白紙のままです。Previewで確認しても何も表示されません。どうして???
58名称未設定:04/10/04 20:54:42 ID:lOfTUdmU
>>57
QuickDrawがPDFサポートしてないからと違う?
59名称未設定:04/10/05 11:52:58 ID:JJ54eH/Z
>>58
NSImagePICTRepでPICTファイルを読み込ませたものは印刷できるんだけど。
こっちはPictureのOpCodeとOperandをQuartzでエミュレートしてるのかな?

いろいろやってみたけど、どうにもならないので、Cocoaで書き直すことに
します。どうせ円と直線と文字列くらいしか使ってないんで。
60名称未設定:04/10/05 13:48:45 ID:LklwItxB
REALbasicから別の言語に移行しようかと考えています。
次に学ぶ言語として適切なのはどれだと思われますか。
REALbasicよりも高速にコードが実行できて、難しすぎないのが希望です。

PyObjective-C
Cocoa-Java
FutureBASIC
...etc.
61名称未設定:04/10/05 13:53:57 ID:ixq7d1AL
Javaは?
62名称未設定:04/10/06 10:14:46 ID:SRhdwFwi
NSPopUpButton のメニューアイテムの選択可/不可の切り替えが上手くいかない。
[ [ self itemAtIndex : 0 ] setEnabled : NO ];
とやっても、選択不可にならないのだが、上手いやり方ないかな?
63名称未設定:04/10/06 19:37:59 ID:gOoH1Me1
>>62
NSMenuのupdate呼ばないといけないかも知れない
6462:04/10/07 00:09:53 ID:XntnNaYz
>63
反応しないです。
ターゲットの指定が抜けてたときにグレー表示になっていたので、
ポップアップの項目を選択不可にするのは可能なはずだが。。。
65名称未設定:04/10/07 00:12:35 ID:b0V5qGkA
-(BOOL)validateMenuItem:(id <NSMenuItem>)menuItem;
を実装したらどうか。
6662:04/10/07 02:00:25 ID:XntnNaYz
>65
ありがとうございます。 >63(と、あといくつかのメソッド)と
組み合わせて、期待した実装が出来そうです。
67名称未設定:04/10/09 03:46:02 ID:8fwief9e
http://www.sticksoftware.com/software/CircularSlider.html
Circular Slider

おもしろそうなんで貼っとく。
こういうの作る人どのくらいいるんだろ。
68名称未設定:04/10/09 11:23:57 ID:D312AAgm
>60さん

REALbasicから乗り換えるならどれでも大して変わらないし(難易度に関しては)、素直にCocoa-Objective-Cで良いのではと思います。
FutureBASICはあっさり除外するとして、Cocoa-Javaでも良いと思うけど初心者は逆に混乱する恐れあり(>_<)
Carbonは面倒すぎるのでやめといた方が無難っぽい。

参考書としてはヒレガス本が良いのではと思います、Cocoaの何たるかをちゃんと説明してくれているので非常に良いです。
買った本人が言うのだから間違いなし。

>REALbasic

3.5まで使ってたけど、D&D中に何にも処理が出来ないのが嫌すぎなのでCocoa-javaに乗り換えました、v2ぐらいまでがよかったかにゃ。
6968:04/10/09 11:27:08 ID:D312AAgm
下げ忘れ(>_<)
70名称未設定:04/10/09 15:20:23 ID:OlGs8dbr
>>68
レスどうもありがとうございます
Objective-C か Cocoa-Java を検討してみる事にしました。
71名称未設定:04/10/10 00:42:01 ID:+jzsVI1e
>>67
がんばれば作れるかも、、、
ちっちゃいViewの中心に対してマウスのドラッグされた角度を計算して、、って感じかなあ
72名称未設定:04/10/11 13:12:10 ID:IAYj86Ya
NSViewのカスタムサブクラスでBindingを使おうと思って、KVCに準拠しexposeBindingも呼んでみましたが、
モデルの方からは変更が反映されるものの、
View中で自身のset○○を呼んでもコントローラーもモデルも無反応の模様。
これだけでは駄目なのかと色々ググって、ようやく見つけたページ。
ttp://homepage.mac.com/mmalc/CocoaExamples/controllers.html

ここの「Graphics Bindings」サンプルを覗いてくじけました。
こんなにコード書かなならんのか…?

  <⌒/ヽ-、___
/<_/____/
73名称未設定:04/10/11 14:23:34 ID:5asQve9S
NSButton ( アクアフェイスなボタン)のビットマップイメージを取り出そうしていますが、
うまくいきません。コメントいただけると幸いです。

NSImage*imgtmp;
NSBitmapImageRep *reptmp;

NSSize size = [[Button image] size];
imgtmp = [[NSImage alloc] initWithSize:size];
[imgtmp lockFocus];
[[Button image] drawInRect: NSMakeRect(0,0,size.width,size.height)
fromRect:NSMakeRect(0,0,size.width,size.height) operation:1 fraction:1.0];
[imgtmp unlockFocus];
reptmp = [NSBitmapImageRep imageRepWithData:[imgtmp TIFFRepresentation]];
74名称未設定:04/10/11 14:40:33 ID:mKWZwBrY
NSButton の -(NSImage *)image; が返す内容を勘違いしているのが原因では?

NSImage *image=[[[NSImage alloc] initWithData:[Button dataWithPDFInsideRect:[Button bounds]]] autorelease];
てな感じでどうだろう?
75名称未設定:04/10/11 15:20:04 ID:5asQve9S
>>74
できました。
PDFに一旦落とすという発想は私の思いつく域を遥かに超えていました。汗
非常にエレガントでうっとりするコードをありがとう。


76名称未設定:04/10/11 15:20:24 ID:gpt6ndXr
NSCalendarDateって、
指定した年月が何日あるのかは教えてくれないのか
77名称未設定:04/10/11 17:42:13 ID:osEE5tfo
>>76
教えてくれますよ。 int で。
7876:04/10/11 18:20:43 ID:p1xQHiR+
ID変わってるけど。
>76 あるのか。関数が見つからなくて、今は来月1日の一日前という取り方してるよ。
79名称未設定:04/10/12 16:30:30 ID:3JlU0Yq9
スクロールビュー内にある、サイズが変わる予定の自作Viewのスクロールの起点を常に一番上にしておきたいんですが
そのスクロールの起点を動的に設定する方法がよくわかりません
スクロールビューのClipViewに - (void)scrollToPoint:(NSPoint *)point を使えばいいんでしょうか?
(0, NSMaxY([view bounds])) を引数にしてみてもどうもうまくいかないのですが
80名称未設定:04/10/12 18:37:00 ID:9WZNH4F8
>79
Macでプログラミング{4}
http://pc5.2ch.net/test/read.cgi/mac/1080051583/487-
にそんな話題が出てる。ご参考まで。
81名称未設定:04/10/12 18:50:19 ID:3JlU0Yq9
>>80
サンクス。でも -scrollPoint: は単にスクロールさせるだけのメソッドなので。
スクロールの起点が一番上に設定されていると、スクロールビューがリサイズされた時にも
中のviewの表示領域が上端を基準に拡大縮小するはずなんです。
デフォルトのviewだと何故か下端を基準にしてしまうんですよね。
82名称未設定:04/10/12 19:01:27 ID:3JlU0Yq9
nsscrollview でググルと結構有名な問題のようですね。
isFlipped が鍵なのかな?

この記事がアップされてくれれば... orz
第38回 (MOSADen第100号 2004年2月10日)
座標の原点を左上にしよう
ttp://www.remus.dti.ne.jp/〜yoshiki/cocoa/ed1/index.html
83名称未設定:04/10/14 19:03:14 ID:ZHsqwcvD
>>82
実装ファイルで
- (BOOL)isFlipped { return YES; }

を実装すると、座標系が左上起点になりますよん。
84名称未設定:04/10/17 14:08:14 ID:AXFI2lOD
NSImageViewの背面にあるカスタムビューに対して
別スレッドからsetNeedsDisplayを呼ぶと画面がチラチラするんですが
これはどうにもならないんでしょうか?
多分メインループのスレッドがNSImageViewに対してsetNeedsDisplayを呼ぶまでの
タイムラグが原因だと思うんですが。
85名称未設定:04/10/17 18:51:41 ID:VbE+cDok
NSTextView に表示される文字列を全消去する方法を教えてください。
すとれーじがどうとか、あとりびゅーてどすとりんぐがどうとか、わけわかりません。
86名称未設定:04/10/17 19:13:02 ID:bWVtJDk6
>>85
たぶん [aTextView setString:nil];
87名称未設定:04/10/17 19:32:03 ID:VbE+cDok
>>86
[aTextView setString:@""];
でできました。トンクス
ていうかsetString:なんてあったんですね・・・惑わされてしまった。
88名称未設定:04/10/17 19:32:21 ID:jmisajyF
>>86
それたぶん落ちる。
[aTextView setString:@""];
だな
89名称未設定:04/10/18 22:16:58 ID:YdalqTKH
NSAffineTransform で回転をさせたビューの描画を元に戻したいんですが
どうすれば良いんでしょう?
90名称未設定:04/10/18 22:24:54 ID:rDA+NApD
>>89

目測だが、invert で逆マトリクス作ればいいのでは?
9189:04/10/18 23:41:32 ID:cfn68ZuV
>>90
ありがとう。試してみます。
92名称未設定:04/10/19 00:43:44 ID:eHoAdsqR
>>89
あなたはおれですか?
質問書き込もうと思ってリロードしたら、聞きたい質問そのものが新着してた。
一瞬なにか超自然的な作用かと思って目の前が真っ白になったよ。結婚しよう。

>>90
そう思って試してみたんですがなぜかクラッシュします・・・。
デバッガによると [[affine invert] concat]; のところで
Program received signal: "EXC_BAD_ACCESS".
だそうです。
9389:04/10/19 07:27:41 ID:1qZyz/dZ
>>92
もう一人の俺こんにちは。
色々試してみたら [NSGraphicsContext restoreGraphicsState]; でリセットできるっぽい。
ただ、これが何をやってるのか良く分かってないですが。w
94名称未設定:04/10/19 10:58:17 ID:pIwOM2Pe
いま出てる本で1番初心者にお奨めなのはどれですか?
95名称未設定:04/10/19 11:25:10 ID:PPNsUwGQ
毎日コミュニケーションズの「Xcode入門」以外なら、なんでもおすすめ。
96名称未設定:04/10/19 11:51:29 ID:sbjhSHBI
>>89
[[NSAffineTransform transform] set];
でいけるかも。何もしてないNSAffineTransformをセットしてる。
うちではこうしてるけど、正しい方法かどうかは分からないね。
97名称未設定:04/10/19 12:06:25 ID:pIwOM2Pe
>>95ありがとう。
98名称未設定:04/10/19 12:31:49 ID:1pmS2xsp
あらゆる戦争行為を否定する人が
ビートル乗ってるって変じゃない?
ナチスとの関係を知らないんでしょうかね。
99名称未設定:04/10/19 13:18:11 ID:6H5hxS7X
>>94
とりあえず
ttp://homepage.mac.com/mkino2/books/index.html
あたりを参考に。初心者といっても、いろんなレベルがあるから曖昧なんだが
オレ的にはアーロン・ヒレガスの本がお勧めかな。
Appleの「入門Cocoa」はちょっとお勧めできないな。

毎日コミュの「Xcodeプログラミング入門」は評論するにも値しないクソ本で
Xcodeのヘルプメニューに書いている内容をうすーく引き延ばしただけだよ。
100名称未設定:04/10/19 13:44:42 ID:eHoAdsqR
NSResponder の - (void) keyDown:(NSEvent*)event で
複数キーの同時押しを受け付ける方法はないんでしょうか。
ウェブあさったところ Carbon を使うとできるみたいですが、ちょっと・・・。
101名称未設定:04/10/19 14:21:16 ID:pIwOM2Pe
>>99
ありがとうございます。
参考にします。
102名称未設定:04/10/19 14:22:17 ID:ymkIT/J1
>>99
>Xcodeのヘルプメニューに書いている内容をうすーく引き延ばしただけだよ。

一言で言えば「手抜き」。サンプルもDeveloperToolsのExampleを
お触り程度に解説しただけの(解説とも言い難い)クソ本。手抜き本。

やはりお薦めはヒレガス本だな。Cocoaのプログラミングマナーというか
スタイルについても書いてある必読本だ。入門はこれ一冊で十分。
あとは英語だがCocoaのReferenceを読みながらプログラムは書ける。
103名称未設定:04/10/19 17:06:22 ID:pIwOM2Pe
ヒレガスのをesBooksでぽちっとしときました。レスありがとうございました。
がんがれ>俺
104名称未設定:04/10/19 18:28:17 ID:kr9B4QT5
>>103
余裕があれば荻原本(Objective-C入門だっけ?)も買っておくと吉
はじめは読んでも分からんと思うけど後で必ず役に立つ
105名称未設定:04/10/19 19:48:04 ID:pIwOM2Pe
>>104
ありがとうございます。
余裕見つけてみます。
106名称未設定:04/10/19 22:09:07 ID:HABUu128
NSLogって最終ビルドの時に削除した方が良いの?
簡易デバッグ用にあちこちに置いてあるんだけど
速度低下の原因とかになるのかな?
107名称未設定:04/10/20 00:13:17 ID:aM0HsfK2
いままでメモリ管理がよくわからず、うろおぼえで

[[[MyObject alloc] init] retain];

↑こんなことをやっていた私を罵ってください。
108名称未設定:04/10/20 00:24:22 ID:GTTuT80H
[[[[[MyObject alloc] init] retain] release] autorelease];
109名称未設定:04/10/20 00:25:40 ID:GTTuT80H
↑これじゃ動かないか w
110名称未設定:04/10/20 03:16:18 ID:jKUCgHXA
>>106
コンソールを見たらログにゴミが溜まっていくのを発見できるかもしれない。

>>109
試してないけど動くんじゃないか?
111名称未設定:04/10/20 15:23:31 ID:aM0HsfK2
Javaでいうところの「定数」をObjective-Cで実現する方法を教えてくれませんか。

たとえばJavaでは、Hoge というクラスで
  public static final int STATE_FOO = 0;
を定義すれば、よそのクラスから
  if (hoge.getState() == Hoge.STATE_FOO) ...
とできますよね。これと同じこと(定数に名前をつける)をObjective-Cでやりたいのです。

NSForegroundColorAttributedNameとかのソース見ればわかるかと思いましたが
APPKIT_EXTERN とかいうキーワードみたいなの使っててワケワカメでした。
112名称未設定:04/10/20 16:05:08 ID:XGwAysyg
enumとか
113名称未設定:04/10/20 16:57:41 ID:aM0HsfK2
もしかして、ただ@interfaceの外にenumを書けば
そのファイルを#importしたファイルの中でなら自由に定数として使えるんですか。
ていうか試したら自由に使えました。どうもありがとう。
114名称未設定:04/10/20 19:25:26 ID:Gav70rhD
Objective-C以前にC言語の勉強をしたほうがいいよ。
115名称未設定:04/10/20 23:02:21 ID:N2YYh2lj
>>114
俺も同じ事書こうと思った
116名称未設定:04/10/20 23:55:06 ID:4+cQi2XZ
#defineだろ!
117名称未設定:04/10/21 00:45:01 ID:oDY7li4u
循環的に依存しあってるクラスをコンパイルする方法はありませんか?
クラスの設計を考え直すしかないのでしょうか・・・。
118名称未設定:04/10/21 02:32:01 ID:oDY7li4u
@class でできました。
119名称未設定:04/10/21 14:21:36 ID:4fPBlGIf
>>106
どうしても気になるならassertマクロみたいにマクロを使って
本番時にNSLogがすべて無効化するような工夫をすれば。
まさか本番時にNSLogをエディタでせっせと削除するとかは考えてないよね?
120名称未設定:04/10/21 15:24:58 ID:wjbq4uWj
K&R(html)
http://freebooks.by.ru/view/CProgrammingLanguage/kandr.html
pdf版ご存じの方教えて下さい
121名称未設定:04/10/21 17:54:37 ID:1T18Dl8L
>>119
__inline__ void Nop_(NSString *iMsg,...){ }
#define NSLog 1 ? (void*)0 : Nop_
この2行を含めるようにする手法のことだね。今は亡きK氏が紹介していた手法だな。
122名称未設定:04/10/21 23:03:20 ID:DIVocMTu
むしろユーザーがバグを見つけたときに
ログを送信できるように前向きに考えるのもありかと思うが。
手法はmkino氏が前に紹介してたな。
123名称未設定:04/10/22 21:43:02 ID:uVBYu65I
Cocoaプログラマって人口どの栗?
124名称未設定:04/10/22 22:24:10 ID:KF+1TbUl
とりあえず有名どこのサイト主の皆さんと……
あとこのスレで点呼取ってみる?
まずはド初級者の漏れがノシ
125名称未設定:04/10/22 22:40:47 ID:8DsG5BJ7
ノシ
情報だけ追ってここ最近やってないが。
使わなきゃいけないC++かJavaばっかり触ってる。
126名称未設定:04/10/22 22:47:13 ID:cBsVmzoz
ノシ
127名称未設定:04/10/23 00:28:01 ID:UBdbDvKI
荒んでるけど人口の多いmacでプログラムスレの方が人が多そうだ…
ノシ
128名称未設定:04/10/23 08:14:14 ID:lq2+elYU
ノシ
129名称未設定:04/10/23 10:18:08 ID:hEsE8c4L
ノシ
というか今セブンイレブンにヒレガス本を取りに行ってきたばかりで、何一つ始めてませんが(´∀`;)
130名称未設定:04/10/23 14:28:44 ID:wfTGBWm6
ノシ
131名称未設定:04/10/23 14:59:11 ID:iDWAJqSi
ノシ

最近はGNUstepいぢりの方が頻度が高いのだが.
132名称未設定:04/10/23 16:16:52 ID:MDa3d8z8
ノシ

「入門Cocoa」読んでるんだけど、この本最初の方は難しいことがたくさん書いてあるなぁ、ってのが今の感想だな。
プログラム自体は簡単だよ、確かに。でも普通の人は多分コーディングする前にプログラミングを
諦めちゃうんじゃないんだろうか?

Toolboxの頃と比べれば天国だけどさ・・・
133名称未設定:04/10/23 17:24:16 ID:E9/a5DFx
ノシ

 UNIX起源ツールのGUIすらマトモに出来たことがないよ。
なんか、日本語がうまく表示できな…
134名称未設定:04/10/23 17:54:11 ID:SNKCNSZK
unixコマンドラインというかshell scriptにGUIを被せたいんで相談にのってください。

ttp://developer.apple.com/samplecode/Moriarity/Moriarity.html
ttp://www.harmless.de/cocoa.html#shellwrapper
あたりで、先頭に #!/usr/bin/Python書いたスクリプトファイルを呼び出すまではできました。
でもスクリプト実行中ずっと虹色カーソルになってしまいます。

frameworkにもPythonがあると教えてもらったのですが
System/Library/framework/Python.frameworkのサンプルとか無いでしょうか?
Cocoa+Pythonはマイナーすぎですか?
135名称未設定:04/10/23 18:06:13 ID:5AQlkNPW
136名称未設定:04/10/23 22:24:16 ID:Ra2ynGf9
10人いれば隠れたところに100人はいるすね
137名称未設定:04/10/23 23:43:21 ID:KQJ/yuoV
ゴキブリかよΣ(´∀`)
138名称未設定:04/10/24 00:16:45 ID:LmVGUhT9
>>134
つ PyObjC
ttp://pyobjc.sourceforge.net/
そういうことじゃないと思うが。

NSTaskを実行したあと、パイプ読むとこを別スレッドにすれば
虹色にならないんじゃないかと。
139名称未設定:04/10/24 21:31:15 ID:f3B8zvQz
Objective-C でアクションゲーム作ったら
実行中だんだん重くなっていくんだけど
これはメモリリークしてるってことですか?

あと NSMakePoint() のソース見たら単に NSPoint を作って返してるだけなんですが
これはメモリ解放しなくていいんですか?
140名称未設定:04/10/24 23:34:04 ID:FqEJN8hk
>>139
かもしれないし違うかもしれない。
とりあえずアクティビティモニタでメモリやタスクの状況をチェック。
NSPointはオブジェクトじゃないからリリースの必要は無し。intやfloatをリリースしないのと同じようなもの。
141名称未設定:04/10/25 18:23:28 ID:3zAahnzJ
NULLかもしれないあるオブジェクトを一番効率的に確認する方法は何でしょうか?
if(!object), if(object == NULL) や if(object == [NSNull null]) では捉えられませんでした
142名称未設定:04/10/25 19:04:51 ID:gGoMVJFx
if (object == nil)
だね
143名称未設定:04/10/25 19:57:16 ID:0Uz186rX
if(object)
でもよろしいかと
144143:04/10/25 19:58:11 ID:0Uz186rX
あ、処理が反対になるけど
145名称未設定:04/10/25 20:08:39 ID:ZiAdQR3t
>>141
もしかして、retainCount == 0 のとき?
146名称未設定:04/10/25 20:27:01 ID:3zAahnzJ
配列からひとつずつobjectを拾っていくんですが、中身がない場合もあって。

>>143
その判定は結局 if(!object) と同じでは?
147143:04/10/25 20:48:44 ID:0Uz186rX
>>146
うん、書いてから俺もそう思った。

ていうかポインタとオブジェクトを混同してない?
if (object == nil)
ってのはポインタが存在するかどうかをチェックしているわけで、
参照先のオブジェクトが存在しているかどうかはそれでは分からないよ。
で、ポインタの参照先のオブジェクトが生きているかどうかの判定は、
無理ってような結論をどこかで読んだような・・・
詳しい人ヨロ。

それより素直にNSArray使えないの?
そうすりゃオブジェクトが解放されてたなんてことはないわけだが
148名称未設定:04/10/25 20:48:48 ID:ZiAdQR3t
>>146
それはマズイね。設計を見直した方がいい。

Cのポインターと同じようにfree(release)後は実態はないでしょ。
Objective-Cの参照カウンター(retain)はAutorelease用だけに使えるもの
と考えよう。

過去レスにオーナーシップなんたらのイイ説明があったから参考にしてね。
149名称未設定:04/10/25 20:57:42 ID:3zAahnzJ
いや、実際にはリリースされてるわけじゃなくて、データベースから取り出した配列の中に
空の項目がある可能性がある、という話で。その項目の中身が実際に空である判定をしたいんですよ。
150名称未設定:04/10/25 21:46:18 ID:Qvh9nVkO
>>149
> データベースから取り出した配列の中に空の項目
それて多分NSNullで格納されてるかも。
NSArrayはオブジェクトのidに-retainメッセージを送ってオブジェクトを確保するので
nilだとメッセージ送ると落ちる気がする、、
151名称未設定:04/10/26 08:07:40 ID:XO7mOPN1
>> 149

「項目の中身が……空である」の意味が分からん。「項目の中身」ってインスタンス変数のことかな?

それと、「配列」ってのがCの配列なのかNSArrayなのかはっきりせんから、各々のレスの内容が
混乱している気がする(俺はCの配列のことなのかと思っていたが、そうは思っていないでレスしている
人もいる)。

もう少し具体的な状況を説明せんと、このまま混乱しっぱなしだぞぃ。
152名称未設定:04/10/27 15:04:26 ID:U3o7WDTo
メニューアイテムのタイトルをプログラムから変更したいのですが、
いい方法はないですか? 変更したいアイテムが存在するメニューを
取り出す方法がわからんのです。

アウトレットを各アイテムに設定して処理する以外にないのだろうか?
153名称未設定:04/10/27 15:44:01 ID:4G5dM+yA
アクションが設定されてるならそのターゲットの -validateMenuItem: でいじればいいと思う。
メニューアイテムにはtagか何かつけておけば。
154152:04/10/27 16:04:21 ID:U3o7WDTo
>>153
なるほど。試してみたらうまくいきました。ありがとう。
155名称未設定:04/10/30 02:24:23 ID:tyK6ZJD1
Mac OS X Tiger、Mac史上最大のリリースに
中略「次期バージョンのMac OSは、デベロッパにとってMac史上最大のリリースになる。」と語っていると伝えています。
同氏は、次期Mac OS Xについて、「良いニュースは、どのリリースよりもはるかに多い機能を搭載していることで、
悪いニュースは、学ぶことが多くあるため、なれるまで多少時間がかかるということです。」と語っています。

面白そうだけど、10.4のみ対応のソフトがガンガン出て古いOSの人はうんざりするだろうなあ。
156名称未設定:04/10/30 02:31:37 ID:EivnBCST
ぺけこーど2がぱんたーでも使えるなら嬉しいんだが
157名称未設定:04/10/30 11:27:19 ID:g6LcquNV
>155

「Cocoa Framework 全廃」 とか言うんじゃないよね?

Appleのことだからやりかねんぞ。
「ラッパー作りましたので大丈夫です」とかいいつつ、細かい部分は泥臭い逃げ道しかないとか。
158名称未設定:04/10/30 11:39:47 ID:tyK6ZJD1
今のところ発表されてる内容としては Core Image, Core Data, PDFKit, Sync Services,
Spotlight関連、Dashboard関連、Automata関連、64bit Development等。
159名称未設定:04/10/30 15:18:56 ID:WjB9bqf2
>>157
それはありえないだろ。
何のためにCore Dataあるんだよ。
160名称未設定:04/10/30 17:45:10 ID:5zlPbjhR
いずれClassic環境と共にCarbonが廃止される可能性はあるけどな。
Carbonは非公開のAPIとしてCocoaの下請けに格下げ。

・・・というのならあり得る。
161名称未設定:04/10/31 10:09:31 ID:oS6oIHsV
ToolbarItemをクリックした時にModifierキーが押されているかどうかを
検出したいのですが、Cocoaで可能ですか?

今はObjective-C++でCarbonのGetKeys()とキーコードを使っていますが、
Cocoaで可能であればCocoaで統一したいのですが。
162名称未設定:04/10/31 13:30:46 ID:humJ/SrJ
可能。
163名称未設定:04/10/31 14:13:43 ID:HCc2xVUs
164161:04/10/31 14:51:21 ID:oS6oIHsV
ありがとう。ToolbarItemはNSObjectのサブクラスだけど、targetとなるのは
NSResponerのサブクラスだからtargetの方で処理させます。
165名称未設定:04/10/31 14:56:03 ID:xpNGdXyw
163はわかってないっぽいな(w
166名称未設定:04/10/31 17:13:22 ID:humJ/SrJ
別に target が NSResponder のサブクラスでなくとも
modifier key が押されたかどうかの判定は可能なわけだが。
167名称未設定:04/11/12 17:44:31 ID:WACvju7A
Javaにおけるinstanceofのように、Objective-Cで
あるオブジェクトがどのクラスのインスタンスか判定する方法を教えてくださいませませ。
168名称未設定:04/11/12 17:59:03 ID:za0cYkMm
isKindOfClass:とかNSStringFromClass()とか
169名称未設定:04/11/12 18:05:06 ID:WACvju7A
>>168
うほっ、サンクスです!
170名称未設定:04/11/12 18:23:42 ID:WYCgTEbQ
誰か10.4試してる人いる?
171名称未設定:04/11/13 23:59:27 ID:sJwtNAoL
NDAがあるんだから誰も答えんよ。
172名称未設定:04/11/17 16:11:12 ID:11n3jmmH
NSBezierPath#stroke とか使って Pure Cocoa な描画するより
OpenGL フレームワーク使った方が速いんですか?

自分で確かめずに人に聞いちゃうテスト
173名称未設定:04/11/18 02:21:24 ID:y1qOqtgR
Macアプリの開発したいなぁと思ってるんですが、
ObjectiveCでソースファイル数100くらいで、
支障なく開発できる環境って、どの程度のマシンを買えばいいですか?
Macは10年近くご無沙汰だったもので状況がよくわかりませぬ。
174名称未設定:04/11/18 07:36:43 ID:6/2hbYPp
支障なく開発できるって意味がわからん。普通、エディタを使ってる時間が
一番長いだろうが。
175173:04/11/18 08:59:00 ID:y1qOqtgR
エディタはたぶん普通に打てるとして・・・
コンパイル+デバッガ起動までがストレスなければいいかな。
AthlonXP 2000、メモリ512MBでEclipse使ってJavaやってるけど、
これくらいのパフォーマンスなら満足。
176名称未設定:04/11/18 10:45:22 ID:yjR4Dt/R
>>173
予算しだいじゃない?
最近のMacは性能上がってるから...。
予算がありあまってるならPowerMac G5 2GHz Dual程度で。
20万とかで収めたいなら
省スペース重視ならPowerBook15inch以上、
デスクトップでもいいならiMac G5。

2.5GHz Dualは納期が遅いらしいんで止めた方がいい希ガス
177名称未設定:04/11/18 11:08:37 ID:fF5MQSSs
画面のでかい20inch iMacG5もいいよ。さすがにPowerMac G5に比べると
ややもたつくけど、開発作業なら楽にこなす。一番バランスがいいのは
PowerMac G5 2G Dualだろうな。マルチスレッド対応だからDual CPUで
コンパイルすれば速いよ。

2.5Gは家で使ってるけど、発熱が2Gに比べて15〜20℃くらい上なので
負荷がかかるとすぐにファンがうなり出す。その点2Gは静かでいいよ。
178名称未設定:04/11/18 14:02:23 ID:0ZH2LIrm
趣味だけど、15' PBG4 1.25Hzでやってる。
青空プログラミングとかやってみたり。

問題はマルチスレッドアプリのマルチプロセッサでの検証が出来ないことぐらいかな。
まあ趣味だから「マルチプロセッサマシンだと問題があるかもしれません。」で済ますけど。
179173:04/11/19 10:29:43 ID:s9RuJW6x
予算はあんまり・・・10万以下に抑えたいけど厳しいそう。
G4-1GHzくらいは、ないときついみたいですね。
デスクトップはデカいから置き場所なさそう。
キューブくらいの大きさがよいけど、それだと性能悪そうだし・・・
となるとノートが一番コストパフォーマンス的にも良さそうなんだけど。
外部モニター接続とか、キーボードがRealForce使えるかが心配。
180名称未設定:04/11/19 22:51:53 ID:hX7op6lK
iBookG4でちまちま楽しんでますが
それなりの規模のアプリを作るとなると厳しいんかなぁ。
181名称未設定:04/11/20 00:16:20 ID:nwqkeU9k
iBook G3 / 600 で開発してるぞ。
ユーザーの方が遥かにスペックの高い機種を使ってるのが鬱だ。
182173:04/11/20 00:31:01 ID:OChSwmTT
とりあえず、来週CherryOSが出るので、それを試してみます。
満足いくパフォーマンスが出たらそれで。
だめぽなら、iBookG4 12inch買います。ヤプオクなら10万以下で買えそうだし。
183名称未設定:04/11/20 00:47:45 ID:PsAWvBxK
>>182
CherryOSは明らかに怪しいと思うんだが…

なんかGCCのメーリングリスト見てたんだけど
ObjC++のことでもめとるね。
184名称未設定:04/11/20 03:41:18 ID:KeHPZFyS
NSDataの型になってる文字列のエンコーディング判別をうまいことやる方法はないですかね?
Appleは「initWithData:encoding:で試して返ってきたらそれが正解だぜ」とか言ってるんですが
ISO2022JP、EUCJP、ShiftJIS、Unicode8をそれぞれ試してみると、
複数返ってきてしまったり化けてたりでまともに判別できません。
185名称未設定:04/11/20 07:50:09 ID:nwqkeU9k
考えられる全てのエンコーディングの夫々に対して initWithData:encoding: で NSString を生成してみる
a 失敗なら不正解
b 成功なら他のエンコーディングで生成した NSString と length を比較してみる
 イ より長いなら不正解
 ロ より短いなら暫定正解
んで、一番最後まで残った暫定正解が正解

といった感じだっただろうか。以前どこかで見た方法だけど全然試してない。
186名称未設定:04/11/20 09:16:05 ID:ly0nhkvK
完璧な自動判別方法は無い。
なのでユーザに判別させる。
187名称未設定:04/11/20 13:40:54 ID:y5tga5el
nkf辺りの判定コード持ってくればどうだろう? と言ってみるテスト。
188名称未設定:04/11/20 13:41:38 ID:y5tga5el
あ、書いた後で気付いた
187の「コード」は文字コードじゃなく「ソースコード」の意味っす。あいまいでスマソ。
189名称未設定:04/11/23 10:11:42 ID:b9qdL6YA
>>184
まずUTF8で開いて、失敗したらText Encoding Converter を使うようにしてる。
190名称未設定:04/11/24 19:02:03 ID:FxAO9nuN
初心者故にどう質問してよいものかいまいち分からないですが質問します。

例えば、下のようなテキスト文字列で構成されたテキストデータがあったとします
1行目:本日の数値目標
2行目:
3行目:りんご 値1A 値2A 値3A
4行目:みかん 値1B 値2B 値3B
5行目:
6行目:みなさんよろしくおねがいします
このでーたから3〜4行目の値を取りだし、それを指定されたテキストボックスに
表示させたい場合、どうすればいいんでしょうか?

使用する言語はObjective-Cとした場合で、ヒントをいただけるとありがたいです。
宜しくお願いします。
191名称未設定:04/11/24 20:36:00 ID:lB3Ai9YB
改行を区切りとして文字列を配列に変換して、
3つめと4つめの要素を取り出す。
NSString の componentsSeparatedByString: を使えばできるな。
192名称未設定:04/11/24 22:13:38 ID:NP2CHypH
>>190
3、4行目を文字列として取り出したいのなら>>191
それ以上のことをしたいのなら(各行の中身をパースして1Aを取り出したいとか)、
何をしたいのかもう少し詳しく書いてくれないと分からない
193名称未設定:04/11/24 22:17:02 ID:OyPrypnR
正規表現を勉強してOgreKitを使うと幸せになれるかも。
194190:04/11/24 23:12:52 ID:FxAO9nuN
>>191-193
ありがとうございます。ある測定プログラムをNSTaskでもって動かして、受け取った返り値を
処理してテキストフィールドに反映させる、それが成功すれば今度は値のみのログを取る、と
いった感じです。

今回の情報を基に早速勉強したいと思います、ありがとうございました。
195名称未設定:04/11/25 16:51:59 ID:M4raaS8N
「みなさんよろしくおねがいします」とか吐く測定プログラムってちょっとイヤかも。
196名称未設定:04/11/25 22:59:47 ID:OslqsWF0
ここに実際にMACのプログラムを仕事としてやってる人います?
言語的にはやっぱObjectiveCが主流なんでしょうか。
Mac OS Runtime for Javaとかもあるし、
JAVAの仕事も増えてきてるんですかね?
197名称未設定:04/11/25 23:12:37 ID:CAMAhAn+
「Macの」というからには普通Javaは使わないかと
198196:04/11/25 23:31:01 ID:OslqsWF0
ちょっとネットや知人からMacプログラミングの話を聞いて興味を持ったんですが、
Sunの提供しているVMの上で動くJavaの話ではなく、
Javaの文法を使ってMacネイティブのアプリ開発が
できるわけじゃないんでしょうか?
199名称未設定:04/11/25 23:42:22 ID:nhg7Ye+i
>198
できますよ。
でもMacのアプリを作るのを仕事にするなら、Objective-Cでやるだろうね。
200196:04/11/25 23:47:18 ID:OslqsWF0
>>199
それはなぜでしょう?
Objective-Cは、ちらっと本屋で立ち読みした程度なんですが、
相変わらずヘッダとソースを書かないといけないようですし、
言語としてはJavaのが洗練されていそうですが。
201名称未設定:04/11/25 23:57:42 ID:nhg7Ye+i
>200
ユーザは言語の洗練具合でアプリを評価する訳ではないですし。
Cocoa-Javaアプリは重いよ。動作速度。
202名称未設定:04/11/26 00:02:18 ID:3pf4yLZM
追加:
Cocoa-Javaは起動に時間がかかるが、重いと言っても極端に重い訳ではない。

でもCocoa-Javaは結局JavaブリッジでJavaをObj-Cに変換しているに過ぎない。
CocoaはObj-Cが一番の仲良しさんなんです。
203196:04/11/26 00:06:27 ID:EqG52UL9
なるほど、やっぱりJavaのが重いんですね・・・
極端に重いわけじゃないとは言ってもユーザーからすれば
少しでも速いほうが良いですし、結局はObjective-Cになるわけですね。
ありがとうございました。今度、本を買っていろいろ勉強してみます。
204名称未設定:04/11/26 00:24:24 ID:mHevX6lf
Javaが洗練されてるなんてホントにそう思ってるのか?
中途半端だろ。
205名称未設定:04/11/26 00:41:12 ID:3BcPKOHj
洗練という言葉はObj-Cのほうが似合う気がするな。
Java5.0のThreadは便利そうでうらやましいが…
206名称未設定:04/11/26 01:58:52 ID:8HfZKyCy
Obj-Cは美しいし柔軟だけど
Javaのような安心感がいまいちというか
まだ低レベル言語寄りというか・・・。
207名称未設定:04/11/26 02:31:56 ID:0AeLLBH4
Objective-CはC++と混ぜて書けるし、CarbonのAPIも呼び放題。
CocoaだけではMacらしいアプリを書くにはちと機能不足。
208名称未設定:04/11/26 14:08:10 ID:Y7WUOGvR
auto resizeのボタンが横に2つ並んでいて、
左のボタンは右幅を動的に、右のボタンは左幅を動的に設定。
こうした時に、ウィンドウをリサイズすると、ボタン同士の幅が一定にならない。

これを解決する上手いやり方はあるんでしょうか?
フォントパネルのようなウィンドウを作りたいのですが。。。
209名称未設定:04/11/26 14:53:01 ID:ltTYQMVo
何がいいたいのか全然わからんよ
210名称未設定:04/11/26 15:20:45 ID:Y7WUOGvR
GUIを文字だけで伝えるのは難しいね。
|------------|
|------------|
|  ( ) ( )   |
|------------|

|------------------------|
|------------------------|
|   (      )    (      )  |
|------------------------|

          |----|
          この幅を固定でリサイズしたいのです
211名称未設定:04/11/26 16:01:23 ID:8HfZKyCy
Mac使ってるとは思えないAA
212名称未設定:04/11/26 16:46:57 ID:2cIf81A4
nibの設定だけじゃ無理じゃね?
NSWindowDidResizeNotification捕まえて自分でやるとか
俺としてはボタンは大きくしても全体のデザインが汚くなるだけで良いこと無いと思うが
213名称未設定:04/11/26 18:06:18 ID:oMBopJ8f
Java風のインターフェイスだわな。
214名称未設定:04/11/27 00:14:38 ID:rxs9gGz7
Obj-CもJava並みに的確なエラー報告してくれればなあ。
215名称未設定:04/11/30 21:16:55 ID:/+L1o5e1
例外処理が使いにくいのがね、、、
216名称未設定:04/12/01 09:11:45 ID:s2WCUzDv
ダイナミックバインディングだからコンパイル・リンク時にエラーが
出なくて実行時にエラー出たりして、初めの頃は大分戸惑った。
調べてみたらメソッドの名前を一字間違ってたなんてのが良くあった。
217名称未設定:04/12/01 09:23:53 ID:II93Y7Xs
>215

10.3以降がターゲットなら

@try
@catch
@finally

が使えるよ

NSException が普通にキャッチできるよ
218名称未設定:04/12/01 14:20:37 ID:KaLMg95b
宣言と実装を分けて書くのがダルすぎる
219名称未設定:04/12/05 13:03:42 ID:CLFHVF+m
>>216
プログラミングなんてそんなもんじゃねえの
220名称未設定:04/12/09 23:59:26 ID:mKBIXS4L
Cocoa OpenGL がさっぱり!!!
221名称未設定:04/12/14 07:51:05 ID:A63OKDhR
Cocoaでつくったものを、OS9でつかえますか?。
222221:04/12/14 08:19:56 ID:A63OKDhR
失礼。
だめみたいだね。
223名称未設定:04/12/14 09:31:24 ID:rY881cUj
OS 9で開発するならREALbasicがいいのではないかと。
でもバグ多かったり苦労多いらしい。
224名称未設定:04/12/14 14:06:54 ID:ygHysprh
重ったるいしな
225221:04/12/14 14:40:41 ID:A63OKDhR
>>223
OS9用のネットのツール作りたいだけなので、
金かけたくないんですよね。
226名称未設定:04/12/14 15:44:29 ID:7bkgR+ty
だったらMPW使えよ。
227221:04/12/14 16:09:03 ID:A63OKDhR
>>226
39。しらんかった。
228名称未設定:04/12/15 04:54:36 ID:xaqQTsFg
モノにもよるけどMacPerl(MacJPerl)とAppleScriptの組み合わせでも
けっこう色々な事ができると思われ。

>>227
何かいいものできたらうpしてくだせー。
229221:04/12/15 10:46:45 ID:ju70aJTu
>>228
んだ。がんばるだ。
230名称未設定:04/12/15 18:26:26 ID:2aV22198
OpenTransport使うのか? 結構、大変だよ。
ドキュメントは難解だし、サンプルになるソースも少ない。
ネットワークに詳しければ簡単かもしれんが、そうでないなら
RealBasicでも使った方がいいかも。
231名称未設定:04/12/15 20:00:04 ID:C0TjuZ9c
金かけたくないって書いてあるよー
232名称未設定:04/12/15 20:21:23 ID:2aV22198
手間を惜しむか、金を惜しむか?

俺はPowerPlantのソースを読んで書いたけどな。ああいうソースがないと
しんどい。MacTCPの方が簡単だが、Carbonでは使えない。OpenTransportは
MacTCP互換でも作ることが出来るんだが、これまたCarbonでは使えない。
233名称未設定:04/12/16 01:08:18 ID:0GlekW0n
なんとかしてCocoaでC++使う方法はないのかしらん。
234名称未設定:04/12/16 01:23:43 ID:BB9SdzRK
ソースの拡張子を.mmにすれば使えませんか
コンパイラはg++にしないと文句言われるかも
ProjectBuilder or Xcodeなら気にしなくていいだろうけど

Objective-C++でぐぐるといろいろ出てくるはず
235233:04/12/16 03:55:16 ID:0GlekW0n
なるほど。Objective-C++ってのがあるのか。
で、少し調べてみたけど、全部Object-C++で書いて
Objective-Cと同じ事はできるのかな。
236名称未設定:04/12/16 09:14:00 ID:i7riW60a
単にObjective-CとC++が混ぜて書けるだけだから
237221:04/12/16 09:22:06 ID:EFIB9uMS
>>230
おれにいってたのかw。
テキストブラウザつくりたくてね。
opentransportか、、、むずかしそうだな。
238名称未設定:04/12/16 17:58:15 ID:c3ghBHkC
テキストブラウザっちゅーと、モザイクさんのような?
239221:04/12/16 18:00:17 ID:EFIB9uMS
>>238
それしらない
240名称未設定:04/12/16 18:06:04 ID:Xwg3RJHG
OS9用だとWannaBeがあるな。日本語表示するためにはパッチを当てなければ
ならないし、いろいろ使いにくいが。
241名称未設定:04/12/16 20:13:10 ID:c3ghBHkC
242221:04/12/16 22:25:58 ID:EFIB9uMS
>>241
わざわざありがとう。
アウトラインプロセッサみたいのをイメージしてます。
w3mってのにちかいのかな、、、
243221:04/12/17 09:40:41 ID:+pq7DiNB
>>240
めっけました。ありがとう。
244名称未設定:04/12/17 19:10:43 ID:Nu27VlSE
cocoaでクリッピング領域を設定する方法ってあります?

エディタを作っていて、キャレットの点滅の後にsetNeedsDisplay:YESを
行うと全体を書き直してしまうので無駄な処理が多すぎて難儀してます。
setNeedsDisplayInRect:も結局全体を書き直してしまうし・・・
245名称未設定:04/12/24 14:58:32 ID:DJJFwamA
教えてください、頼みます。

愚妻のために、.docファイルをVPCのwordで開くようにする、アプリを作りました。
初めて、Xcodeを使って、AppleScriptで書きました。

Finderでアプリケーションの関連付けは出来て、.docファイルをダブルクリックすれば、
VPCが立ち上がって、mswordで読めるところまではこぎ着けたのですが、肝心のところが
うまく行きません。

それは、Mail.appで、添付ファイルが.docのとき、ダブルクリックでこのアプリで
開くように出来ないのです。どうしても、AppleWorksが立ち上がってしまう。
右クリックでアプリを選べば良いのですが、妻にそこまで要求するのは無理なので、
なんとかダブルクリックで、出来るようにしたいのです。どうしたら良いのでしょうか?

以前、NeoOfficeをインストールしたときには、Mail.appからデフォルトでNeoOfficeが
立ち上がったので、私のアプリケーションの作りが悪いか、あるいは、何かのコマンドが
有ると思うのです。NeoOfficeのインストールパッケージの中にpostinstallのshellスクリプト
が有りますが、それらしきコマンドやファイル操作は見当たりませんでした。

246名称未設定:04/12/24 16:20:27 ID:5nHD2khF
Safariでためた各サイトのfaviconは他のアプリからwebkit経由でアクセスできるものなんでしょうか。
Shiiraを見る限りfaviconはシェアされてないようなんですが、
サイトのURLを指定してfaviconを得るような方法はありますか?
247名称未設定:04/12/24 16:36:30 ID:4zDc60cH
.plistでfaviconのキャッシュフォルダを同じに変えとけば何とかなるってもんでも
ないの?

WebIconDatabaseDirectoryDefaultsKey
248名称未設定:04/12/24 17:09:00 ID:5nHD2khF
>>247
そもそもどうやってfaviconを呼んだらいいのか...
用途はちょっとURLを扱うときにfaviconを添えられたらいいなあという程度なんですが。
WebHistoryItemに -(NSImage*)icon があるので、これをURLを指定して作ればいけるかと思いきや
initWithURLString:title:lastVisitedTimeInterval: を使ってもちゃんと返ってこないんです。
249名称未設定:04/12/24 18:22:53 ID:yJgEXBCh
>>245
Finder で .doc に関連づけられたアプリケーションを変更したらどうか。
まあ、スレ違いなので Mac OS X 初心者スレでも行った方が良さそうだが。
250名称未設定:04/12/24 19:38:53 ID:F4cB+47Q
>>249もしくはAppleWorksのplistをいじってdocを開けなくするとか
251245:04/12/24 20:41:56 ID:DJJFwamA
れすありがとう。もうすこし、調べてみましょう。

252名称未設定:04/12/26 16:45:14 ID:B5o6I7/v
Mail.appのスレで訊いた方がよかったんぢゃ。
253名称未設定:04/12/27 11:59:04 ID:ORz9OUjU
Foundation ToolをDarwinで動かすことはできるんでしょうか?
254名称未設定:04/12/31 16:33:16 ID:Qcxym1t3
typedef で定義した型も型チェックしてくれればいいのに
255名称未設定:05/01/04 21:38:41 ID:bhYZnKU1
それできるとC言語自体だいぶ使えるようになるんだけど。
結局、defineかましてるのと、ほとんどかわらん。
256名称未設定:05/01/04 21:52:53 ID:0ZSJuvi9
自作のviewやcellでBindingする時の作法について詳しく解説した本・サイトはありますか?
海外のMLで同様の質問が出ると「NSEditに準拠しろ」という解答がほとんどなんですが
具体的な実装を示したものがなかなか見つからなくて。
257名称未設定:05/01/05 20:07:31 ID:4/QiSZMS
Obj-Cのコンパイラが穴だらけでムカつく。

- (Hoge*) hoge
{
  /* empty */
}

こんなの↑が平気でコンパイル通って、
実行するとBAD_ACSSESSとか意味不明なエラーを
わけわからん場所で出すので気づきにくい。
258名称未設定:05/01/05 20:10:52 ID:4/QiSZMS
つづりミスった。
× ACSSESS
○ ACCESS

大文字だとたまに間違えるよね? ね?
259名称未設定:05/01/05 21:16:34 ID:IWQIVKpK
>>257

-Wall
260名称未設定:05/01/06 18:11:19 ID:4BQvmq3+
質問失礼します。

MainMenuにAmpという項目を追加しました。
Ampという項目をクリックするとPnlAmpというパネルが表示される仕組みにしました。
PnlAmpは通常必要無いのでAmp項目を無効化(灰色になるやつ)にしたいのですが、どうやれば良いのでしょうか?
NSDocumentControllerのvalidateMenuItemで取得できないので困っています。

よろしくお願いします。
261名称未設定:05/01/06 19:12:05 ID:TkRn3bvZ
NSMenuItemのsetEnabled:だろうけど
NSMenuのsetAutoenablesItems:の設定によっては効かないんだっけ?忘れた
262名称未設定:05/01/06 22:28:33 ID:a1BdQaOM
>>260
validateMenuItemはターゲットを繋げた先で拾うもんだけど。
アクションがDocControllerにあるのは確か?
263260:05/01/07 12:13:40 ID:GoXMEy82
返答ありがとうござます。
>>262
いえ、繋げていないです。
「ユーザーがAmp項目を選択するとPnlAmpパネルを開く」という仕様にしたいので、
InterfaceBuilderでAmp項目からControlキーを押しながらD&Dで、PnlAmpのタイトルに繋げました。
なんとなく原因が見えてきましたが、イマイチわかりません。。。

よろしくお願いします。
264名称未設定:05/01/07 12:20:32 ID:IeT538w8
>>263
PnlAmpを開くコントローラは作った?
Amp項目からconnectするのはPnlAmpのタイトル(パネルのことかな?)ではなく、PnlAmpを制御するコントローラにすればできるよ。
そのコントローラでvalidateMenuItemを受信しなさい
265名称未設定:05/01/07 12:29:46 ID:R5GUmrAq
>>263
目の前で教えるか、プロジェクトを見てみるとかしないと分からん。
プロジェクトをいきなりうpされてもあなたが何をやりたいのかをソースから判断するのは時間がかかるし。

無駄な時間を過ごすより本買った方がいいよ。

理論ならこの辺でもいいけど。
http://developer.apple.com/ja/documentation/japanese.html
の「Cocoa」「オブジェクトとの通信」の
「ターゲット/アクションパラダイム」
あたり。
266260:05/01/07 12:33:03 ID:GoXMEy82
返答ありがとうございます。
>>264
なるほど。
実は263を書いてる時点で薄々感づいてました(w

となると、
validateMenuItemで受信した後、PnlAmpパネルを表示する。
という流れになると思うのですが、プログラムからのパネルの表示ってどうやるのでしょうか?
既に
@interface DocController : NSDocumentController
{
IBOutlet NSPanel *m_pclAmp;
}
というインターフェイスは設けたのですが、、、

以前、そこで躓いたのでAmp項目からPnlAmpパネルのタイトルにconnectしたのを思い出しまいた。
質問が変わってすいません。

よろしくお願いします。
267260:05/01/07 12:38:28 ID:GoXMEy82
>validateMenuItemで受信した後、PnlAmpパネルを表示する。
ここは、変でした。

validateMenuItemで受信して、有効無効を設定する。
ユーザーが有効なAmp項目を選択したら、PnlAmpパネルを表示する。

に訂正します。
すいません。
268260:05/01/07 17:09:53 ID:GoXMEy82
解決しました。

if(m_pclWinAmp== 0x00000000){
 m_pclWinAmp= [[NSWindowController alloc] initWithWindow:m_pclAmp];
}
[m_pclWinAmp showWindow:nil];

こんな感じですね。

ありがとうございました。
269名称未設定:05/01/08 18:13:54 ID:ptb7imzv
>>268

だいたいいいけど、もしm_pclWinAmpがIBOutletとして定義してあるなら(バンドルに入ってるなら)、
そこはNSWindowControllerをallocしないで、

IBOutlet NSPanel* m_pclWin;

if( m_pclWin == nil )
{
if ([NSBundle loadNibNamed:@"xxxx" owner:self])
{
//必要ならいろんなことをする
[m_pclWin setExcludedFromWindowsMenu:YES];
[m_pclWin setMenu:nil];
[m_pclWin center];

//このへんでm_pclWinに配置されているUI、Notificationの設定などをする

[m_pclWin makeKeyAndOrderFront:nil];
}
}

みたいにするべし。
WindowControllerはほっとくべし
270名称未設定:05/01/08 23:35:46 ID:OnTLnrhU
NSTaskで、ディレクトリ内の拡張子のあるファイル全部を指定しようとして @"*.*" をargmentsに加えたんですが
コマンドが「指定ファイルが見つからない」旨のエラーを返します(実際にあるファイル名を指定すると問題ない)
NSTaskに渡す引数に * は使えないんでしょうか?
271名称未設定:05/01/08 23:38:10 ID:OnTLnrhU
NSTaskで、ディレクトリ内の拡張子のあるファイル全部を指定しようとして @"*.*" をargmentsに加えたんですが
コマンドが「指定ファイルが見つからない」旨のエラーを返します(実際にあるファイル名を指定すると問題ない)
NSTaskに渡す引数に * は使えないんでしょうか?
272名称未設定:05/01/08 23:40:12 ID:OnTLnrhU
NSTaskで、ディレクトリ内の拡張子のあるファイル全部を指定しようとして @"*.*" をargmentsに加えたんですが
コマンドが「指定ファイルが見つからない」旨のエラーを返します(実際にあるファイル名を指定すると問題ない)
NSTaskに渡す引数に * は使えないんでしょうか?
273名称未設定:05/01/09 13:29:50 ID:yvN4neVM
あちこちの板で三連投稿を見かけるが何かあったんだろうか?
274名称未設定:05/01/09 13:45:17 ID:JApCHH+h
深夜1時頃かな。pc5.2ch.netが落ちてた。
鯖が落ちてるのに気付かずに
『あれ?書き込めてないぞ?』と書き込みボタンを連打した香具師が居たという事じゃないかな?

2chで書き込みがタイムアウトとかなった時は
鯖がすごく重くなってるとかだから、そのまま待った方が吉。
275名称未設定:05/01/09 14:01:11 ID:k0PF7J38
中華からの攻撃でいくつか鯖が落ちたらしい。
pc5鯖の調子は長いこと最悪だった。なんでpc鯖狙うのかはよくわからんけど。
276名称未設定:05/01/10 02:18:05 ID:0i6UvawU
エアコンをスタートさせるとがたがたいいます。
自宅のは2台そうなってしまいました。
どうすればいいでしょうか。
277名称未設定:05/01/10 02:34:31 ID:yivhoIqI
資金が豊富にあるなら新しいマシンを買うのが一番だが、
そうでないなら暖かいCocoaでも飲んで春を待つといい。

ただ、不具合の原因がわからないと新品も同じ道を歩む可能性があるので
メーカーのサポートに連絡してみるのが吉。
278名称未設定:05/01/10 05:26:10 ID:0i6UvawU
どうも。
ファンが回転すると中でこすれてるんで音がします。
タバコやほこりで中が汚れてるんだと思うんです。
困りますね、最近のコンパクト傾向は。
279名称未設定:05/01/10 09:09:56 ID:EX2CA6up
タバコをやめればマシンにも自分にも良い影響が。
280名称未設定:05/01/11 07:09:59 ID:a9di4ADs
保守
281名称未設定:05/01/11 22:44:39 ID:MyrQWGA+
Cocoaはさっぱりでも、PyObjCやwxPythonなら
比較的簡単にCocoaアプリを開発できそうですよ。
282名称未設定:05/01/12 00:01:36 ID:FdI6Cfme
CocoaやObj-Cが難しいんじゃなくて、資料不足が痛いな、おいら。
英語がわかればなぁ
283名称未設定:05/01/12 00:25:43 ID:UAHJFjiH
ほんと資料が問題ですよね。
だからPure Javaとかの方がやりやすいと思う。

とか言って漏れはAppleScript Studioがせいぜいなわけですが
これも日本語の資料を色々作ってくれた先人が居るから使えてるんですよね。
284名称未設定:05/01/12 01:08:07 ID:6HjU3V0l
SunのサイトでJava API文書は英語と日本語しか配布してないってことは、
日本語ネイティブじゃない人はほとんどみんな英語版を読んでるってことですよね。
日本人プログラマも英語文章をすらすら読めるようになっておかないと、
翻訳待ちしてるあいだに技術導入が遅れちゃうんじゃないかとちょっと心配。
このスレで心配する必要なかったね。
285名称未設定:05/01/12 01:11:10 ID:UiLHa4jc
>283
Pure JavaとwxPythonどちらが軽そうですか?
286名称未設定:05/01/12 01:49:26 ID:UAHJFjiH
さあ。Pythonの事は全く知らないからなあ。

そういえばPerlでもCocoaアプリケーション作れるんだよね。
CamelBonesだっけ。

>>284
ある意味日本人でよかったなあと思う。
日本は欧米文化にずいぶん浸食されてるよなと思うけど
技術的な事を学ぼうと思ったら英語じゃないと全くダメって国も
たぶん多いんだよね。
母語が失われて行くのはやっぱり悲しい。
287名称未設定:05/01/12 01:53:06 ID:M6rFw4K8
どっかの過去スレで読んだ話。
モンゴルとかだと大学で勉強するレベルの本でモンゴル語で
書かれたものがないから、勉強しようと思ったら
まず英語やロシア語を覚えるのが必須らしい。

288名称未設定:05/01/12 03:33:33 ID:6HjU3V0l
世界進出とかを考えたら英語が理解できる方がいいよね。
インド人がアメリカなんかのオフショア開発を
引き受けやすいのも英語ができるという利点があるからみたいだし。
289名称未設定:05/01/12 05:11:08 ID:UAHJFjiH
グローバル化=文化の多様性の死、人類全体の頂点一極ピラミッド化
ですかね・・。
ああ憂鬱だ。
290名称未設定:05/01/12 07:54:13 ID:WdZ69FPS
そこでプログラミング言語「ひまわり」ですよ。
291名称未設定:05/01/12 10:57:25 ID:nvQV6tT5
何だそれ?
292名称未設定:05/01/12 17:32:43 ID:zoSiTyC4
質問です。
InterfaceBuilderで、NSWindowの上にNSButtonのカスタムクラスBtnPlayを置きました。
このボタン(BtnPlay)を「押した瞬間」と「離した瞬間」のイベント(別にNSEventで無くても良いです)を取得したいのですが、
どうやれば良いのでしょうか?
293292:05/01/12 17:41:32 ID:zoSiTyC4
ごめんなさい。解決しました。
NSResponderの派生とは知らなかったんです。
俺の1時間が、、、orz
294名称未設定:05/01/12 18:57:48 ID:EFeTHluf
安心汁。大抵プログラムで悩むのは一時間じゃ足りない。
一晩悩んだあげくつまんないミスだったりするのはザラだから。
295名称未設定:05/01/12 22:15:39 ID:oka9PPG4
一時間で自分で気づけばいい方だよなあ・・・
296名称未設定:05/01/13 15:36:39 ID:wnQbq25P
Object-Cを触るの初めてなのですが、

pclTmpName= [NSString stringWithString:fileName];
pclExt= [pclTmpName pathExtension];
pclTmpName= [pclTmpName stringByDeletingPathExtension];
pclTmpName= [pclTmpName stringByAppendingFormat:@"_TMP"];
pclTmpName= [pclTmpName stringByAppendingPathExtension:pclExt];

プログラムは、これで良いのでしょうか?
一応動いていますが、メモリ周りが心配。
解放とかって必要あります?
297名称未設定:05/01/13 15:44:25 ID:ZrH/s89P
メモリ回りはOK
自分でalloc retain copyしていない限り解放する責任は無い

ちなみにまとめて書くなら
pclTmpName=[NSString stringWithFormat:@"%@_TMP.%@", [fileName stringByDeletingPathExtension], [fileName pclExt]];
とか
298名称未設定:05/01/13 15:45:15 ID:ZrH/s89P
間違えた
pclTmpName=[NSString stringWithFormat:@"%@_TMP.%@", [fileName stringByDeletingPathExtension], [fileName pathExtension]];
でした
299名称未設定:05/01/13 15:48:06 ID:RvvcS6pF
メモリまわりはきちんと理解しておいたほうがいいので、

/Developer/ADC Reference Library/documentation/Cocoa/Conceptual/MemoryMgmt/Concepts/ObjectOwnership.html

を穴が開くまで読むことをおすすめします。
300296:05/01/13 16:09:01 ID:wnQbq25P
なる。
ありがとうございます〜。
301名称未設定:05/01/13 16:14:38 ID:y4kia5HJ
>298

stringByAppendingPathExtension: って 引数が nil の時は .(null) を付けるんでしたっけ?
そのやり方だと付きますよね?

# リファレンスには載ってなかった。 しかも実機が目の前に無い。。。
302名称未設定:05/01/13 16:18:11 ID:ugV7KcoW
英語・・・。
303名称未設定:05/01/13 20:57:22 ID:ugV7KcoW
どなたか青空文庫のビューアを作ろうという方はいらっしゃいませんでしょうか・・。
304名称未設定:05/01/13 21:31:04 ID:KTJyuCui
口ひっぱりながら青空文庫っていってみ
305301:05/01/13 21:31:09 ID:6uttlil9

stringByAppendingPathExtension: にnilを渡すと、
NSInvalidArgumentException が投げられました。

報告まで。
306名称未設定:05/01/13 21:43:56 ID:V+7kcuP3
307名称未設定:05/01/13 21:55:22 ID:8PtrluXa
>>303が日々2chに費やしてるであろう膨大な時間をコード書きに向けれ
308名称未設定:05/01/13 22:23:02 ID:oFGwLnag
>>301
NSLogにnilなオブジェクトを渡すと、確か(null)って表示されたような気がする
普通のメソッドに渡すとだいたい例外投げるか落ちるか
309名称未設定:05/01/14 03:14:46 ID:OaTTOcBT
>>307
そんだけの頭が無いもんで・・・。
特に英語の資料とか無理。
310名称未設定:05/01/14 17:43:58 ID:udyUVaL4
>>304
ワロテシモタ
311名称未設定:05/01/16 14:04:38 ID:tJNaCTTw
起動中のアプリケーションの一覧
を取得するにはどうしたらいいでしょうか?
(Classic環境で実行されているのも含めて)
312名称未設定:05/01/16 21:49:51 ID:5xUCqe2+
>>311

NSWorkSpace.hより


#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_2

/* The following methods return information about an application as a dictionary containing as many of the following keys as are available:
NSApplicationPath (the full path to the application, as a string)
NSApplicationName (the application's name, as a string)
NSApplicationProcessIdentifier (the application's process id, as an NSNumber)
NSApplicationProcessSerialNumberHigh (the high long of the PSN, as an NSNumber)
NSApplicationProcessSerialNumberLow (the low long of the PSN, as an NSNumber)
The same information will now be provided in the userInfo of the NSWorkspace notifications for application launch and termination.
*/

- (NSArray *)launchedApplications;/* Returns an array of dictionaries, one for each running application. */
- (NSDictionary *)activeApplication;/* Returns a dictionary with information about the current active application. */

#endif
313名称未設定:05/01/19 11:34:42 ID:EVat31fi
質問です。
Aというファイルの中で宣言した配列変数を、Bというファイルのヘッダに
"#import A.h"して使おうと思ったのですが"first use 〜"とのエラーが出て使えません。
配列変数を別ファイルで使うためにはどのようにすればいいのでしょうか?
314名称未設定:05/01/19 12:06:26 ID:ZACX0ehw
>313
Cは宣言と確保がきっちり分かれてないから分かりづらいといえば分かりづらい。

この質問も配列変数がCの配列なのかNSArrayとかCFArrayとかなのか分からないので答えづらい。

しかも、グローバル変数論争に発展しかねないのでさらに答えづらい。
315名称未設定:05/01/19 20:01:28 ID:xexgw/cL
エラーメッセージは略さないで下さい。
こっちはエスパーでもNASAの指令センターでもないのよ。
316名称未設定:05/01/20 00:29:41 ID:FWd7WgOe
Cocoaでファイル入出力をやるにはXcodeで作るプロジェクトは
Document Based Appじゃないといけないんですか?
つまりJavaのようにとにかくストリームを開いて云々すればいいというわけじゃないんですか?
317名称未設定:05/01/20 02:05:43 ID:uNb9+vEi
>>316
Document-Based にすると抽象クラスの幾つかのメソッドをオーバーライドするだけで、
ほとんどのことはフレームワークがやってくれるというだけかな?
まあ「だけ」とは言えないほど膨大なことをやってくれるんだけど。
そのほとんどはGUI関連なのでコンソールアプリなら全く不要です。

何なら fopen(3) とか open(2) をそのまま叩いちゃっても別に問題ないです。
318名称未設定:05/01/20 02:26:58 ID:FWd7WgOe
>>317
なるほど。ありがとうございます。
319名称未設定:05/01/20 14:27:41 ID:XBNvkYJR
質問失礼します。
Interface Builderで、NSWindowの上に「AというNSOpenGLView」と「B・CというNSScrollView」を合計3つ置きました。
Bから、Cのポインタを引っ張ってきたいのですが、どうやれば良いのでしょうか?

よろしくお願いします。
320名称未設定:05/01/20 15:15:22 ID:iyqf3ZK2
>319
たぶんやりたいことは

NSOpenGLViewを選択。
Layout→Group→Scroller(うろ覚え)
だろうなぁ。
321320:05/01/20 15:31:39 ID:iyqf3ZK2
あ、OpenGLなら拡大縮小とかもありか。

そういう場合なら、NSOpenGLViewをサブクラス化してoutletを持たせるか、
コントローラを別に用意してそっちに3つ全てを持たせるかかな。

後者が正当法だと思う。
322名称未設定:05/01/20 15:49:43 ID:XBNvkYJR
>>320
説明不足ですまんです。
作業した経緯に関しては、
1.A・B・CとNSOpenGLViewを設置した。
2.B・CをLayout→Make subviews of→ScrollViewで、スクロールViewにした。
という感じです。

Bのクラスから、Cクラスへのアクセス(正確にはCが管理しているNSView)を行いたいのですが、、、

BからCにConnection(nextKeyView)しました。
プログラムで[B nextKeyView];
で帰ってきたのがCのクラスなのでしょうか???

よろしくお願いします。
(自分は初心者なので、説明に「勘違い」が含まれてる可能性があります。。。)
323名称未設定:05/01/20 15:52:31 ID:XBNvkYJR
>>320
>コントローラを別に用意してそっちに3つ全てを持たせる
ヒントありがとうございます。
チャレンジしてみます。
324名称未設定:05/01/20 16:57:01 ID:587YXJUr
>>323
M・V・Cの違いをもう1度勉強したほうがいいように思う
325323:05/01/20 22:24:39 ID:XBNvkYJR
出来ました!

NSView*pclView= [B nextKeyView];
pclView= [pclView nextKeyView];
pclView= [pclView nextKeyView];
pclView= [pclView nextKeyView];
pclView= [pclView nextKeyView];

やっぱ、止めた方が良いですか?(泣
326名称未設定:05/01/20 22:41:55 ID:VYWc2A+K
最良のアドバイス:ちゃんと本買ってやったら。
327名称未設定:05/01/20 22:47:49 ID:FWd7WgOe
cocoaは独習はきついわよね
328名称未設定:05/01/21 00:59:21 ID:+czMnMxs
>>327
cocoaの独習はきついけれど、pythonの独習はそれほどきつくないのでPyObjCでも利用してみては?
329名称未設定:05/01/21 10:21:05 ID:rXUn2FW7
Objective-CでXMLを使いたいんだけど
一般的にはどのパーサを使ってるの?
330320:05/01/21 10:35:40 ID:2tDa4kGw
>329
http://developer.apple.com/documentation/Cocoa/Reference/Foundation/ObjC_classic/Classes/NSXMLParser.html
ってのが出来てるが使ったことは無い。

expat でいいんでない?
331名称未設定:05/01/21 21:31:28 ID:I19yNZvJ
>328
Cocoaフレームワークのマンドクサさからは逃れられないぢゃん……OTL
Objective-Cがネックで挫折した人ならともかく。
332名称未設定:05/01/21 22:36:31 ID:K8aBgSpQ
Javaのを呼ぶ。
333名称未設定:05/01/22 01:09:26 ID:biGruddp
Objective-Cで書いてて一部だけJavaのクラスを呼ぶってのは可能ですか?
なにかサンプルがあればありがたい。
334名称未設定:05/01/22 11:52:31 ID:Ub3bkmLK
>>333
そんな面倒くさいことはしないほうがいいと思う。

フレームワークなんてどれでも慣れるしかないんだから
335名称未設定:05/01/22 20:28:40 ID:mCNoMzmo
Cocoa-javaからOpenGL使いたいなぁ
336名称未設定:05/01/23 04:01:38 ID:USWwFcnf
おれもおもった
337名称未設定:05/01/24 05:14:57 ID:13T2kGPN
ジニーエフェクトのAPIって未公開?
338名称未設定:05/01/24 19:32:49 ID:zzH+Afzh
>337
TransitionWindow()でいけたと思う。
10.3以上でCarbonだけど・・・。
339名称未設定:05/01/31 23:44:22 ID:oV5TxmIG
冬はココアですよねやっぱり
340名称未設定:05/02/02 15:13:16 ID:mBpedoxs
>>60
普通のC言語
341名称未設定:05/02/05 01:06:26 ID:n9SmAg32
CocoMonarを自宅と出張先で使用しておりますが、スレッドの更新状態を同じに(簡単に言えばiSync)みたいな物はありませんでしょうか?
もしくは、どこのファイルをコピーすれば同じ状態にできるのでしょうか?
ご存知の方見えましたら教えて下さい。
342名称未設定:05/02/05 01:08:34 ID:duv7ytq7
>>341

OSX専用2chブラウザ"CocoMonar"(22)
http://pc7.2ch.net/test/read.cgi/mac/1106466526/
343名称未設定:05/02/05 01:08:49 ID:xI9/Fy4U
ココアはさっぱり森永
344名称未設定:05/02/05 21:22:25 ID:Qvw1TEG4
Cocoa+Obj-CでXMLを取り扱いのですが
JAVAでDOMを利用するような感じで
XMLを読み書きするにはどうしたらよいのでしょうか?

どこかにサンプルソースでもあれば幸いです。
345名称未設定:05/02/05 21:38:03 ID:RyRiJG6e
直接の解決じゃないけど、10.4ではxmlへのアクセスをサポートするNSXMLが追加されるとか
346名称未設定:05/02/05 23:26:46 ID:nyfvVqKo
NSXMLParserとかは?
347344:05/02/06 01:23:34 ID:hAP73zvg
>>346
こんなものを待ってました。
ありがとうございます。
348名称未設定:05/02/16 01:30:14 ID:w2GEcgsw
cocoa-javaでkeyDownでスペースキーが取れないんだけど
Objective-Cの方で実装するにはどういう風にやってますか?

スペースキーはkeyUpでしかとれないみたい
349名称未設定:05/02/16 02:51:13 ID:vkDCl4Pv
ObjCではふつうにNSResponderのkeyDownでどっさりとれてますが。
350名称未設定:05/02/18 12:28:03 ID:CGocdEsl
>>349

NSWindowのkeyDownではどっさり取れるけど
NSWindowControllerのkeyDownでは取れていないことが判明。
チェインは
NSWindowからNSWindowControllerになってるんだけど
NSWindowControllerまで到達しないって事はNSWindowの方で
処理しちゃってるからって事なんですかね?
351名称未設定:05/02/18 12:29:37 ID:CGocdEsl
>>349

NSWindowのkeyDownではどっさり取れるけど
NSWindowControllerのkeyDownでは取れていないことが判明。
チェインは
NSWindowからNSWindowControllerになってるんだけど
NSWindowControllerまで到達しないって事はNSWindowの方で
処理しちゃってるからって事なんですかね?

理解間違ってるだろうか。
352名称未設定:05/02/18 23:23:54 ID:uuu/ddrl
>>344
定番のExpatは?Obj-Cラッパ―もあります。
http://expatobjc.sourceforge.net/
そのままだとちょっとダサいので、Cocoaな感じにアレンジしたほうがいいやね。
353名称未設定:05/02/19 21:53:29 ID:sI26+cqJ
>>351
なぜNSWindowControllerでkeyDownを取得?
というかNSWindowControllerはあまり変更しないものだと思う。
よくわからないけど、
・カスタムビューを追加して、そこで取得
・あるいはNSResponderを継承したコントローラーを作成して、responder chainに挿入
・NSTextViewなどがfirstResponderで、そいつが取得するイベントを知りたいときは、NSTextViewを継承したカスタムビューを作成
のどれができると思うけど
354名称未設定:05/02/24 22:18:42 ID:ez8pICu0
この話の流れに関係あるのかないのかわからないけど質問。

タイトルバーなしの透明ウインドウ中で半透明のイメージを常にほかのアプリケーションより
前面に表示しつつ、その表示されている部分をクリックしてもそのアプリケーションが
アクティブにならない(下に表示されているほかのアプリの操作ができる)

というのを実現するにはどうしたら良いでしょう?
単にNSWindowをタイトルバーなし・透明にして、その上のNSImageに半透明画像を表示す
るだけではクリックに反応してしまいますよね。
うまい方法があれば教えてください。
355名称未設定:05/02/24 22:35:44 ID:q0lf3fvP
>354
NSWindow にこんなんあったけど。

setIgnoresMouseEvents:

- (void)setIgnoresMouseEvents:(BOOL)flag
Specifies whether the receiver is transparent to mouse clicks and other mouse events, allowing overlay windows.

Availability
Available in Mac OS X v10.2 and later.
356名称未設定:05/02/24 23:02:43 ID:ez8pICu0
おお、見落としてたか。thanks!

欲を言えば一部だけクリックに反応とかできたら良いのだけど、これは、クリックに反応する
小さいウインドウを子ウインドウにして横に並べればいいか。
357名称未設定:05/02/25 01:21:55 ID:TZKhkjBf
NSImageの縦と横のサイズ知りたくて[image size]からNSStringFromSizeして
componentsSeparatedByString:@","してNSMutableStringにして
deleteCharactersInRange:NSMakeRange(0,1)とかしてintValueなんてして
おかしい面倒すぎるNSImageRep使えってことか
とか思ってたら構造体を知った超初心者な俺様が来ましたよ
なんだこの茶番orz
358名称未設定:05/02/25 01:32:51 ID:I/OdB9wN
Cocoaさっぱりわからない。
スレタイ通り。
アーロン・ヒレガスを読んでも今ひとつ分からない。
もちろん話は楽しい。
読んでマウスをカチカチしているとわくわくする。
しかし、分かった気になっていざ一人でプログラミングに取りかかると、
さっぱり分かっていなくて詰まってしまう。

誰か良い本を教えてください。
359名称未設定:05/02/25 03:35:37 ID:4GczcdvV
何がしたいんだよ。
あと本を読んで初歩を知っただけではやっぱりわからない。
作りながら経験を積んで構成を掴んでいくしかない。
みんな調べながら作ってるんだよ。
360名称未設定:05/02/25 09:26:34 ID:0g5k3+6R
ヒレガス本に限らず入門書というのは一通り何かのプログラムを作って
おしまい。セミナーに出ても同じ。ヒレガス本がすぐれているのは
Cocoaのプログラミングスタイルが一貫していて、こういう時には
こういう流儀でプログラムするということが出てるんだな。

ただ、ヒレガス本を読んだからすぐに自分の作りたいものが作れる
わけじゃない。ヒレガス本に出ているサンプルはCocoaのごく一部しか
使ってないわけだから。AppleのDeveloperサイトのApplicationKitや
Foundationのリファレンスを見ながら作るしかない。これは誰でも一緒。ApplicationKitやFoundationの各クラスが一体何をするものなのかを
知らなければ何も出来ない。それが面倒だとか英語だから無理なんて
思うのなら諦めた方がいい。

20年くらい前ならインサイドマック徹底ガイドというリファレンス代わり
になる日本語の本があったけど、Cocoaにはリファレンスになるような
日本語の本がないから自分で努力するしかない。
361名称未設定:05/02/25 20:47:00 ID:czsIoZ07
>>358
> 誰か良い本を教えてください。
厳しいこと言うようだけど、他の本を読んでも多分無駄。
ヒレガス本と同じことを繰り返すだけだと思う。
何か作りたいものがあってプログラミングの勉強を始めたのだろうから、
とりあえず何でもいいから作り出すこと。
そうしたら「こういう動作をさせたいけどどうすればいいのだろう?」という疑問が出てくるから、
そうしたらそれについて書いてある本を買うなり、文献を探すなり、
ここで聞くなりすればいい。
362名称未設定:05/02/25 22:27:24 ID:r9OxQGmp
>>361
第一線で活躍しているプログラマの駆け出しの頃って、
みんなそうだったんだろうな。
自分はだいぶ後方から追いかけてる立場だけど、
子供の時はかなりプログラム作りまくってたなぁ。
今は出来合いのモノがしっかりしすぎていて
個人でプログラムを作ろうとしてもなかなかハードルが高いよね。
363名称未設定:05/02/26 00:04:55 ID:2mX4UjAD
ヘッダファイルでインスタンス変数なんかを宣言する時に//でコメントつけるのは御法度なんですか?
おかげでしばらく混乱してたんですが
364名称未設定:05/02/26 00:11:47 ID:W2Ky0rW1
全く問題なくコメント付けられるが?
365名称未設定:05/02/26 00:26:14 ID:2mX4UjAD
じゃあ漏れの頭がおかしいのか('A`)

Controller.h
@interface Controller : NSObject
{

//ディレクトリパス
NSString *directoryPath;
//ファイルリスト
NSEnumerator *dirEnumerator;

}

Controller.m
@implementation Controller

-(IBAction)open:(id)sender
{

directoryPath = [openPanel directory];
dirEnumerator = [[[NSFileManager defaultManager] directoryContentsAtPath:directoryPath] objectEnumerator];

}


…は略です
これでdirEnumeratorの横にバツ印が付いて
`dirEnumerator'undeclared(first use in this function)(Each undeclared indentifier is reported only once for each function it appears in.)
と言われます
しかし/* */でコメントを書くと何も言われません
366名称未設定:05/02/26 09:32:50 ID:3wE6guNx
お勧めの方法としては
・本のサンプルを実行してみる
・少し改造をする
・・この時レファレンスと本、ネットの情報と格闘する
・しばらくはこれを繰り返す
・時々オリジナルに挑戦する

こんなもんです。
一歩目の簡単さは旧Macの時代に比べればホントに天と地の違いです。
367名称未設定:05/02/26 09:52:45 ID:wifZdqvZ
>>359-362 >>366
ありがとう。とても参考になりました。
368名称未設定:05/02/26 13:31:14 ID:/GfDccb8
>>365
File Encodingを変えたり、コメントを半角英数字だけにしてもダメ?
369365:05/02/26 15:47:35 ID:2mX4UjAD
>>368
日本語(MAC OS)からUTF-8に変えたらエラーは出なくなりました
また日本語(MAC OS)のままでもコメントを半角英数字だけにしてもエラーが出なくなりました
コメントくらい日本語使いたいので/**/でやるかUTF-8にするかですね
しょうがないんでしょうけどこういうのでエラー出ると自分のコードに自信が持てない初心者には辛いですorz
370名称未設定:05/02/26 21:33:45 ID:/GfDccb8
>>369
個人的にはコメントと言えどもソースコード内に日本語を書くのはお薦めしま
せん。今回の件のようなコンパイラの問題の他、Xcodeのプロジェクト内検索や
CVS、FileMergeなどで問題が起こることもありますし、将来ソースコードを
公開しようとしたときに海外の人が読めないことにもなります。

・関数名、変数名などを分かりやすくし、コメントは必要最小限にとどめる。
・コメントを書くときは(ナンチャッテでもいいので)英語で書く。
・関数や変数の仕様を書く必要があるときは別ドキュメントにする。
などとしてはどうでしょうか。
371名称未設定:05/02/26 23:41:17 ID:OEJSj1j4
俺は逆にコメントは日本語の方がいいと思うなぁ。
書いてる時はいいけど、久しぶりに開くとコメント書いてあっても
「これどういう意味だっけ?」と悩むことも。英語だと読む気すら起きないよ。
日ごろから英語で読み書きする人ならいいかも知れんけど。
372369:05/02/27 00:13:55 ID:q3MH3c+P
>>370-371
ありがとうございます。
まだ試行錯誤しながら動きを確認してるレベルですし、久しぶりじゃなくても悩みそうなので、
とりあえず/*日本語*/で行きます
将来的には英語にしたいですが今は変数名や関数名の名前考えるだけでいっぱいいっぱいですorz
373名称未設定:05/02/27 00:23:07 ID:v6vO26G1
今のうちから英語にしておく癖を付けておいた方が良いと思うがなあ。
374名称未設定:05/02/27 04:13:54 ID:M6/zL8ve
漏れもコメントは1Byte文字推奨。
できれば英語、次善の策としてローマ字(w<問題多いけどね。

でも今のウチから簡単な英語で読み書きする訓練しとくと、後々人外のソースを読む時にコメントの英語で
悩む事が少なくなるとおもうよ。結局なんだかんだで数の勝負って感じだからねぇ。
開発言語も英語も。
375名称未設定:05/02/27 21:23:50 ID:3eFHPUkk
NSTableView でセルをダブルクリックして直接内容を編集しても
データソースには反映されないために元の値に戻されてしまうのですが、
ちゃんとデータソースも変更するにはどうすればいいのですか?

ぐぐったらHMDTの掲示板で同じ質問がありましたが、
私には具体的な解決方法がわかりませんでした・・・。
376名称未設定:05/02/27 21:32:21 ID:qv4BvTOA
377名称未設定:05/02/27 21:35:12 ID:v6vO26G1
-(void)tableView:(NSTableView *)tableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn row:(int)row;
こいつを実装する。

-(void)tableView:(NSTableView *)tableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn row:(int)row{
Hoge *hoge=[sourceArray objectAtIndex:row];
NSString *identifier=[tableColumn identifier];

if ([identifier isEqualToString:@"name"]) [hoge setName:object];
if ([identifier isEqualToString:@"address"]) [hoge setAddress:object];
}

みたいな感じで。
378名称未設定:05/02/27 21:54:46 ID:3eFHPUkk
>>376-377
できました! 深謝!
379名称未設定:05/02/27 22:37:30 ID:B9quVjgF
PDFKitのメソッドはどこで調べればいいんでしょうか。
380名称未設定:05/02/27 23:45:20 ID:78t7/uHI
NSTableView で、行がクリックされたら xxxx という処理を
したいのですが、どうすればいいでしょうか?
そのときクリックされてる行の各セルの値も知りたいです。
381名称未設定:05/02/28 01:39:47 ID:yx/nBJv4
テーブルビューにダブルクリック時のアクションを設定して、
その設定したメソッド内に処理を書く。
これをヒントにCocoaDocumentを見て。調べればすぐにわかるはず。

クリックされている行の値は、ワンクリックされた時点でselectionが
クリックした行になるからそれが何行目かはselectedRowでわかる。
値の調べ方は・・・わかるよね?データのselectedRow番目を見ればいい。
382名称未設定:05/02/28 01:51:10 ID:xxgxzxc0
>>380
「クリックされたとき」のみであれば381でもいいけど
「選択されたとき」という意味であれば違うからね
調べればすぐにわかるけど
ちなみに、クリックだろうがキーだろうが選択状態を調べるときは
複数選択されている可能性も考慮しましょう。
コード上は複数選択でも動くように実装しておいて
IBで複数選択ができるかどうかを切り替えるのがいいでしょう。
383名称未設定:05/03/01 13:34:24 ID:cvLLArNy
>>379
PDFKitはTigerからだが。
384名称未設定:05/03/01 19:45:01 ID:Dlr6OkFI
頭悪くてすいません、混乱してしまったので確認させてください。

NSImage *image;
//NSImage型であるimageという変数名(ポインタ)を宣言。
image = [NSImage alloc];
//NSImageのインスタンスを生成し(=メモリを確保)、
//imageにそのインスタンスのメモリアドレスを設定する。
//つまりimageはNSImageのインスタンスを参照している
[image release];
//NSImageのインスタンスのretainCountを0に=解放=メモリを解放
//imageというNSImage型の変数名自体は残る?

image = [NSImage alloc];//1回目
image = [NSImage alloc];//2回目
//とした場合1回目のインスタンスは参照を失う
[image release];
//としても2回目のインスタンスしか解放されない
//1回目のインスタンスはどこからも参照されてないのでどうやっても解放出来ない=メモリリーク
//ただしアプリを終了した時には解放される?

これで合ってるでしょうか。
?マークつけたとこは合ってるか自信が無いのですが…
ほんとに頭悪くてすいません…
385名称未設定:05/03/01 21:46:11 ID:pGQNXxNN
合ってる。
386名称未設定:05/03/01 22:24:15 ID:Dlr6OkFI
>>385
ありがとうございます。やっとこ理解出来ました。
387名称未設定:05/03/01 23:13:48 ID:u5cCnNmr
initしてないオブジェクトをreleaseしてちゃんと解放されるかは少し疑問
面倒でもちゃんと
[[NSImage alloc] init];
って書いとけ
388名称未設定:05/03/01 23:26:11 ID:pGQNXxNN
そう言われると不安なので、
-(void)test{
NSImage *image;
image=[NSImage alloc];
NSLog(@"%d",[image retainCount]);
[image release];
NSLog(@"%d",[image retainCount]);
}
こんなコードを書いてみた。
2回目の NSLog の部分で落ちるので、たぶん解放されてるんだろう。
alloc と init をセットにしておけというのは同意。
389名称未設定:05/03/01 23:50:39 ID:Dlr6OkFI
>>387-388
すいません。端折ってしまいました。
initしてないと危ういという事は覚えておきます。ありがとうございます。
ところで連続で申し訳ないのですが、NSImageViewを使っていて疑問が生まれました

-(void)test{
NSImage *image = [[NSImage alloc] initWithContentsOfFile:@"/Users/ore/ore.jpg"];
NSImage *image2 = [[NSImage alloc] initWithContentsOfFile:@"/Users/ore/ore2.jpg"];

NSLog(@"%d",[image retainCount]);//1
[imageView setImage:image];
NSLog(@"%d",[image retainCount]);//3
[imageView setImage:image2]
NSLog(@"%d",[image retainCount]);//5
[image release];
NSLog(@"%d",[image retainCount]);//4
}


これはtestメソッドが終わればimageはちゃんと解放されるんですか?
最後のretainCountが2なら解放されるんだろうと思えるんですが、4とか5とか…
390名称未設定:05/03/02 00:10:21 ID:5fWgeDkn
test が終わった時に解放されるとは限らない。
NSImageView が不要と判断した時に解放される。
391名称未設定:05/03/02 00:17:23 ID:F1mg1G4n
>>390
レスありがとうございます。
うむむ…
[imageView setImage:image2]
としてもNSImageViewは不要と判断しないんですか
もうちょっとNSImageViewのDeveloperDocument読んできます
392名称未設定:05/03/02 00:17:35 ID:qpjwD7xE
>>389
たぶん autorelease pool に入ってるのでは。

>>390
[ imageView setImage: image2 ]; してるから、image はもう必要ないかと。
393名称未設定:05/03/02 00:43:41 ID:F1mg1G4n
>>392
レスありがとうございます
autorelease poolに入ってるのかも、ならtestメソッドが終われば解放されるのでは?
とは思ったんですが、retainCountの値が腑に落ちなくて質問しました。

今テストしてたんですが、
>>389のtestメソッドの中ではなく、
testメソッドが終わった後に別のメソッドで[image retainCount];すると落ちました。
解放されると考えて良さそうですね
しかしretainCountが5になるのが謎ですが…
これ以上つっこむと内部まで行きそうなのであまり考えない事にします
ありがとうございました
394名称未設定:05/03/02 08:12:50 ID:4OZX83Dg
>autorelease poolに入ってるのかも、ならtestメソッドが終われば解放されるのでは?
testメソッド終了直後じゃなくて
testメソッド実行中のRunLoopが終了したら解放されるんだと思う

retainCountの数についてはあまり気にしない方が良いんじゃないかな
NSImageViewが他のオブジェクトに渡している可能性もあるし
395名称未設定:05/03/02 11:49:37 ID:tcuxo1Nj
なぜわさわざ、そんな怪しいコードを書くのか理解できん。
396名称未設定:05/03/03 11:05:45 ID:/CO+6QVm
REALbasicからフォントパネルを使うってことは
可能ですか?
397396:05/03/03 14:41:32 ID:/CO+6QVm
スマソ
REALbasic板で聞き直します
398名称未設定:05/03/03 21:41:32 ID:tbHcPSkQ
Document Types:でjpgを登録して、アプリケーションアイコンにjpgをドロップ出来るようになりました
ドロップされたファイルのパスはどうやったらわかりますか?
Document-based Applicationじゃないと無理ですか?
399名称未設定:05/03/03 21:50:04 ID:HSXoIHIN
>>398

NSApplicationのdelegateを調べるべし
400名称未設定:05/03/03 22:01:35 ID:tbHcPSkQ
>>399
出来ました。ありがとうございました。
401名称未設定:05/03/09 18:03:34 ID:SX/XQBkJ
[[[[NSNichannel sharedNichannel] boardForName:@"新・mac"] threadForName:@"Cocoaはさっぱり!!! version.4"] write:@"保守" name:nil email:NSSageEmail];
402名称未設定:05/03/10 23:32:21 ID:mikvhw8q
[[[NSNichannel sharedNichannel] boardForName:@"新・mac"] threadForName:@"Cocoaはさっぱり!!! version.4"] addObserver:self selector:@selector(newMessageDidArrive:) name:NSNewMessageDidArriveNotification object:nil];
403名称未設定:05/03/10 23:49:05 ID:m6aUUfZE
Cocoa のヘッダとか見てるとデザインパターンの勉強にもなるよな。
404名称未設定:05/03/11 12:29:46 ID:voZakjpf
>>403
Objective-C のおかげでデザインパターンが自然に表現できている感じ。複雑なクラス構造とかインタフェースを駆使しないで最短経路でいける。
さらに Cocoa Framework + InterfaceBuilder の組み合わせによって、MVC アーキテクチャの理解も進むし。
Cocoa サイコー。
405名称未設定:05/03/11 13:54:15 ID:5qTF931u
ジェネリクスが使いたい
406名称未設定:05/03/11 14:07:47 ID:kS+x/NcN
スタック上にオブジェクトを配置したい

ブロック構文を使いたい
407名称未設定:05/03/12 00:24:58 ID:dLlkX9wr
NewsFire の左側のような、
順番入れ替わるときに滑らかにアニメーションする array(?) 項目って
どうやって作るんでしょうかねー。
408名称未設定:05/03/12 06:29:35 ID:Wsl8ue1+
NSTimerとか
409名称未設定:05/03/12 08:07:34 ID:WywmQU/Z
WebViewに既に表示されている文字リンクの場所を
nsrectとかで取得できたりします?
410名称未設定:05/03/12 10:55:50 ID:xbo0Ksfy
>>408
View は自作ですかねー
411名称未設定:2005/03/22(火) 16:00:15 ID:ZNAFhDCc
すみません、Cocoa入門したばかりの者ですが
outlineViewを使ってフォルダの中身ではなく
ただの文字をツリー状に表示させてみたいのですがいまいちわからず…
どなたかご教授お願いします
412320:2005/03/22(火) 16:56:43 ID:MBqbsSkH
>411
DataSourceってのを調べてください。
NSOutlineView.h の最後のほう。
スーパークラスであるNSTableViewを調べておくのもいいかも。
413名称未設定:2005/03/22(火) 16:57:44 ID:MBqbsSkH
名前は間違いです。>320さんとは関係有りません。
414名称未設定:2005/03/22(火) 21:37:59 ID:HNikHTm5
NSTaskでコマンドに*のワイルドカードを使った引数を渡そうとすると失敗してしまいます。
(NSTaskはワイルドカードを展開してくれないという記事も見つけたんですが、本当でしょうか)
そんなわけでNSFileManager経由で適合するファイル名をリストにして渡すようにしたんですが、
今度はファイルが多い&ファイル名が長いとコマンドが終了しなくなってしまいます。
ワイルドカードを使った場合と同じ結果(適合するファイルを完璧にコマンドに渡す)が
得られる方法はないでしょうか。
415名称未設定:2005/03/22(火) 23:05:56 ID:7c4x5GHQ
ワイルドカード(というかglob)はシェルの機能だからNSTaskは展開しません。
こんな感じにシェルにまかせればいいと思う。
NSArray *args = [NSArray arrayWithObjects:@"-c", @"こまんど", @"foo*", nil];
[NSTask launchedTaskWithLaunchPath:@"/bin/sh" arguments:args];
416名称未設定:2005/03/22(火) 23:48:53 ID:HNikHTm5
ありがとうございます。でも全然反応が返ってこないです。こんな感じなんですが。

NSArray *argArray = [NSArray arrayWithObjects:@"-c", @"/usr/bin/zip", @"test.zip", @"*.txt", nil];
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/sh"];
[task setArguments:argArray];
(後略)
417415:2005/03/23(水) 00:53:25 ID:PP/nTh6O
>>416
[NSArray arrayWithObjects:@"-c", @"/usr/bin/zip test.zip *.txt", nil];
コマンド〜パラメータは1つの文字列に。
てきとうにかいてしまってゴメン。
418名称未設定:2005/03/23(水) 23:30:06 ID:ONuZLGQ3
ありがとうございます。できました。
419名称未設定:2005/04/08(金) 04:11:11 ID:5K1cGjMs
ランチャーソフト等で使われてるホットコーナーやホットキーのように、
最前面でないアプリがグローバルに入力を横取りするのはどういう仕組みなんでしょうか?
420名称未設定:2005/04/08(金) 04:15:57 ID:IhAq/RUo
ホットキーは InstallApplicationEventHandler と RegisterEventHotKey を使う。
Apple のサイトにある FunkyOverlayWindow が参考になる。
421名称未設定:2005/04/09(土) 11:13:52 ID:Z+aAV6SJ
ホットコーナーだったら任意の場所に透明のウィンドウをフロートで最前面に置いておいて
TrackingRectを監視するってのはどう?
422名称未設定:2005/04/09(土) 12:42:53 ID:2AHWsSdr
>>420-421
ありがとうございます。やってみます。
423名称未設定:2005/04/13(水) 09:19:49 ID:no+DdJtG
toolbarの高さを取得するメソッドはないのでしょうか?

ウィンドウのMaxSizeをアプリ側で固定していますが、
現在はtoolbarが表示されているときには、
defineで指定した数値を足して最大サイズを管理しています。
(数値はtoolbar表示・非表示の時のウィンドウサイズのログから取得)
424名称未設定:2005/04/13(水) 10:00:54 ID:E1bmq/RC
>>423
ウィンドウの高さ - contentViewの高さ
ツールバーってcontentViewに入ってるんだっけ?入ってないよね?
425名称未設定:2005/04/13(水) 12:05:51 ID:no+DdJtG
>423
上手くいかないです。。。
差分を取ると、titlebar + toolbarの高さが取れるけど、
MaxSizeには titlebar + contentViewの値が必要だから、
titlebarのサイズを取得するには・・・どうすればいいんでしょうか?
426名称未設定:2005/04/13(水) 13:42:36 ID:no+DdJtG
開発環境が10.2の為、苦労しました。
(見つかるドキュメントは10.3 and laterばかり・・・orz)

10.2以前限定ですが、一応書いておきます。

setToolbarを実行する前に、>423が説明しているやり方でtitlebarの高さを取得。
[ NSWindow setMaxSize : NSSize ]では
contentView + titlebarを指定。
427名称未設定:2005/04/14(木) 12:39:33 ID:PcxJTHZY
Xcode2になれば、マニュアルやらドキュメントはローカライズも含めてもう少し充実するかな?
428名称未設定:2005/04/14(木) 12:41:45 ID:GmeSsDVk
>ローカライズも含めて
ますます追いつかなくなる、に2000点
429名称未設定:2005/04/15(金) 16:59:00 ID:A5txCAMv
>>428
もちろん、はらたいらさんに、2000点
430名称未設定:2005/04/17(日) 23:03:29 ID:W29Uv4MF
>> 427
英語を勉強しる
431名称未設定:2005/04/24(日) 01:08:05 ID:HoG74g/x
はじめまして。まちゃぽこと申します。
Carbonでコーディングする場合、
複雑な範囲の塗りつぶしやクリッピングは、
リージョンというものを使いますよね。
APIはPaintRgnやClipRgnとか、引数にリージョンデータを
指定して、呼び出しをしますよね。

Cocoaでコーディングする場合、
複雑な範囲を記録するデータ構造っていうものを
どういったクラスで扱えばいいのかが分かりません。

たとえば、円形10000個のUnionをとった領域を
塗りつぶし領域として記録する場合、円形10000個の
中心座標と半径を記録しておくしかないんでしょうか?
Carbonのリージョンデータのように1つのデータとして
扱うことができないんでしょうか…?

どなたか教えていただけると幸いです。
よろしくお願いいたします。
432名称未設定:2005/04/24(日) 02:31:00 ID:hrbhW4ta
NSBezierPath
433名称未設定:2005/04/25(月) 11:37:19 ID:08IrRys/
NSBezierPathは、集合演算が欲しいな。
434名称未設定:2005/04/25(月) 17:22:56 ID:4/tw/1c3
NSBezierPath、遅い・・。
435名称未設定:2005/04/25(月) 18:40:38 ID:YRjP9eH6
>431
Carbon の遺産があるなら素直に Carbon でやるのが吉。
NSQuickDrawView を使えば GrafPort が簡単に取れるよ。
436名称未設定:2005/04/25(月) 22:06:17 ID:rMzUNH1Q
>>433
そう言えばCocoaでベジェ曲線のブール演算とかするライブラリって無いのかな。
libart周辺にはありそうな気もするけど。
437名称未設定:2005/04/26(火) 11:36:48 ID:eIfcIJzR
>>436
ベジェ同士のプール演算の他に、他のベジェや点との包含判定も欲しいし、現在のペンとキャップとジョインの描画結果(輪郭)をベジェで取りだすAPIも欲しい。
後者は、外部ライブラリだとムリかな。
438名称未設定:2005/04/26(火) 13:08:15 ID:ZBsHnmEk
QuickDrawViewはプリントが出来ないっ。ディスプレイに表示だけなら
いいけどさ。
439名称未設定:2005/04/26(火) 13:25:16 ID:1gPBecy+
>438
GWorld で自力バッファリング。
通常の描画はCopyBits() で NSQuickDrawView の GrafPort へ。

-(void)print:(id)sender; を
1,GWorld -> NSImage 変換。自分自身を消去後 NSImage を自分自身に描画。
2,[super print] を呼ぶ。
3,[self drawRect:] で再描画。

とやればうまくいくんじゃないかなと想像してみる。

1 が通常の NSView 扱いにならなければ無理だけど。
440名称未設定:2005/04/26(火) 13:46:30 ID:d+rSviRD
>>437
QuickDrawGXだと簡単にできた。CoreGraphicsは足りない機能が
まだたくさんある。
>>438
一旦PICTを経由して描画すれば良い。PICTからPDFへの変換は簡
単だからプリントはPDFベースで行なう。
441名称未設定:2005/04/26(火) 19:08:07 ID:DmrYPtJv
あるメソッドで作ったNSString *hogeの値を別のメソッドでも使いたいんですけど、
これってどうしたらいいんでしょう? ヘッダファイルでインスタンス変数として
書いておくらしいのはわかったんですが、具体的な方法がわからないです。

hoge = @"この文字列";
[hoge retain];

↑のような書き方では駄目ですよね?
442名称未設定:2005/04/26(火) 22:33:33 ID:1VaS7pzn
スコープ
443名称未設定:2005/04/27(水) 00:37:16 ID:pEfR1oGv
質問の意味がわからん。
444名称未設定:2005/04/27(水) 00:59:08 ID:bmYDKnzs
>>441

文字列リテラルを retain するな。あと、C言語を勉強しろ。
445名称未設定:2005/04/27(水) 01:02:12 ID:Q315ucrb
>>441
ヘッダファイルでは宣言だけ

Hoge.h
@interface Hoge : NSObject
{
NSString *hoge;
}
446名称未設定:2005/04/27(水) 07:56:11 ID:L14tcPq4
>>441
最近はAppleのサイトからObjective-Cのドキュメントの和訳が読めるので、
参考にするといいんじゃないかと思う。

該当部分はクラス定義とメモリ管理の部分だと思うんだけど、難しいかな。
でもこれを読むくらいのやる気がないと続かないのではないかと思う。
特にメモリ管理の方はしっかり理解しておいた方がいいと思う。

http://developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/3objc_language_overview/chapter_7_section_5.html
http://developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/4objc_runtime_overview/chapter_8_section_2.html

>>444
「文字列のリテラルをretainしてはならない」なんて話はなかったと思う。
リテラルだと本当にわかっていればretainする必要はない、というのはあるけど。
そういう意味だよね?
447441:2005/04/27(水) 19:23:04 ID:faDuKesr
>>442-446
レスありがとうございます。
わかり易くしようと思ったら自分の知識不足からわかり難くしてしまいましたorz
すいません。実際にやりたかったのは、

Hoge.h
@interface Hoge :NSObject
{
NSString *hoge;
}

Hoge.m
- (void)hogeMethodA:(NSString *)hogehoge
{
hoge = hogehoge;
}

- (void)hogeMethodB
{
NSLog (hoge);
}

↑のNSLog(hoge)でhogehogeが出力されるようにしたかっただけです。
和訳を読みながらもう少し勉強してみます。
448名称未設定:2005/04/27(水) 19:28:21 ID:e2sTkaPZ
ver.4 だったらわかるけど略さないなら version 4 が正しいのではないか、と思った
449名称未設定:2005/04/27(水) 19:29:03 ID:E4eLAmei
- (void)hogeMethodA:(NSString *)hogehoge
{
[hoge release];
hoge = [hogehoge retain];
}
450441:2005/04/27(水) 20:20:39 ID:faDuKesr
>>449
それは出来なかった筈……と思ったら、出来ました。
テストしてたクラスとは別のクラスで試したら出来ました。
これが原因だったのか?? 兎も角ありがとうございました。
451名称未設定:2005/04/27(水) 21:24:09 ID:pEfR1oGv
>>449
それじゃ hoge == hogehoge かつ retain count が 1 のときに dealloc されちゃう。


- (void)hogeMethodA:(NSString *)hogehoge
{
[hoge autorelease];
hoge = [hogehoge retain];
}

か、あるいは

- (void)hogeMethodA:(NSString *)hogehoge
{
if (hoge != hoegehoge) {
[hoge release];
hoge = [hogehoge retain];
}
}
452446:2005/04/27(水) 21:50:48 ID:L14tcPq4
>>450
>449は典型的な悪い例だね。少なくとも一般的な使い方では。
言い方は悪いけど、メモリ関係の所をしっかり読んでおいた方がいいと言った
のは、まさにこういうのを避けるため。

英語だけど、こっちの方が詳しいな。
http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/Concepts/ObjectOwnership.html
読んでみるとわかってなかったことを発見。orz
まあ、よっぽど自信がない限りはautorelease使え、ということで。
453名称未設定:2005/04/27(水) 22:01:17 ID:6MSGTpXO
Appleはこういう書き方もしてたと思う

- (void)hogeMethodA:(NSString *)hogehoge
{
 [hogehoge retain];
 [hoge release];
 hoge=hogehoge;
}
454名称未設定:2005/04/29(金) 00:15:08 ID:19WrYXab
>>451
3行目の
[hoge autorelease];
はnilか否かの判定必要ですよね?
if ( hoge != nil ) [hoge autorelease];
455名称未設定:2005/04/29(金) 00:17:51 ID:Dq2J8aPS
nil はどんなメッセージが来てもスルーするから
判定は不要なんじゃないか。
456名称未設定:2005/04/29(金) 00:31:17 ID:19WrYXab
初めて知りました>nilスルー
ならば納得です
457名称未設定:2005/04/29(金) 01:09:46 ID:Ds+f6iuI
nilをreleaseしようとしたら落ちないか?
458名称未設定:2005/04/29(金) 01:18:20 ID:5n3TLzDE

ファイルの作成日を変更する方法ってCocoaで可能なんでしょうか?
NSFileManager の changeFileAttributes:atPath:
では、「変更日」は変更できても「作成日」は変更できないみたいですし。
CarbonAPIを呼ぶしかないんでしょうかねぇ…
459415:2005/04/29(金) 01:39:09 ID:MMsJsC97
>>457
落ちない。
deallocされたオブジェクトにreleaseメッセージを送ると落ちる(ことがある)。
460458:2005/04/29(金) 03:03:08 ID:5n3TLzDE
出来たっぽいです。
すみません。
461名称未設定:2005/04/29(金) 09:57:11 ID:O0Ar3QXv
>>459
それで悩んだ事がある。nilに送っても無視されるって言ったじゃないかーって。
まぁよく考えたらnilじゃないんだけど
462名称未設定:2005/04/29(金) 10:09:46 ID:BbSjylit
ポインタが指しているメモリブロックが有効なオブジェクトかどうかを調べる方法は無いみたいだから
deallocした(つもりでいる)ポインタはいちいち=nil;しておくととりあえず安全
463名称未設定:2005/04/29(金) 15:35:59 ID:XPqrcbfb
Xcode2はどんな感じ?
464名称未設定:2005/04/29(金) 18:13:10 ID:Ds+f6iuI
インスコするの忘れてた
465名称未設定:2005/04/29(金) 22:17:02 ID:zEpiS3/Q
すいません質問させて下さい。
NSWindowControllerのinitWithWindowNibNameで作ったウインドウに
NSImageViewをつけてるのですが、これら(ウインドウとImageView)の
オブジェクト(メモリ?)を解放させる方法がわからないのです。

closeでウインドウを閉じてからならImageViewのImageもこちらから
release出来るようなのですが、クローズボックスを押してウインドウを
閉じたらウインドウとウインドウが含むオブジェクトを全て解放する、
といったような動作は出来ないのでしょうか?
466名称未設定:2005/04/30(土) 00:56:59 ID:iCkfgaHm
>>465

NSWindowController が dealloc されるとそのメンバである _window も rerlease される。
NSWindowController に setWindow: で nil をセットすると、 元の _window は release される。

NSWindow が dealloc されるとそのメンバである _contentView (NSView) も release される。

NSView が dealloc されるとそのメンバである _subviews (NSMutableArray) も release される。

NSMutableArray が解放されるとその要素も release される。
467466:2005/04/30(土) 01:00:20 ID:iCkfgaHm
>> _subviews (NSMutableArray)
これは嘘だけど、こっちの方が分かりやすいだろうからね。
468名称未設定:2005/04/30(土) 01:07:58 ID:K5Yumgyi
- (void)setReleasedWhenClosed:(BOOL)flag;
を YES にしときゃ良いってことかね。
469名称未設定:2005/04/30(土) 02:12:39 ID:87JSBF39
IBにNSLevelIndicator(.mac容量風)やらNSTokenField(Mailの宛先風)が追加されてるね。
470465:2005/04/30(土) 19:01:57 ID:/tuMHHcH
>>466-468
レスありがとうございました。
御陰でなんとか解放する事が出来たようです。
471名称未設定:2005/04/30(土) 20:44:47 ID:87JSBF39
CoreDataとMetaData Importerのdoc読んでたら頭痛くなってきた。
472名称未設定:2005/05/01(日) 11:16:19 ID:M0Znzs2F
MetaData周りは楽しそうだな。
でもTigerは新PowerBookまでおあずけな俺。
473名称未設定:2005/05/01(日) 13:47:07 ID:rk7FUsuk
Core Dataとmetadataの扱いって連携できるみたいなこと書いてなかったっけ?
やりやすいってだけの話なのかな。
474名称未設定:2005/05/02(月) 00:07:07 ID:GkFAPdde
ここに書いて良いのか迷いながら書きます。
TigerになってPackage Makerもバージョンアップしましたね。
普通にパッケージを作るとライセンス表示の所から英語表記になるのですが、
みなさんはどの様に対処されていますか?
475名称未設定:2005/05/02(月) 01:27:03 ID:4j8ZAVEI
NSLevelIndicatiorのratingスタイル激しく使えねえ。なんでこんな気持ち悪い挙動なんだ。
NSDatePickerはスタイル変えるとiCal左側のミニカレンダーそのままのものが使える。
使う予定ないけどちょっといい。
476名称未設定:2005/05/03(火) 20:52:57 ID:Zlm9w7FC
Cocoa de AppleScriptableなドキュメントがいっぱい更新されたんで、
実験してるんだけど。うまくいかない。

CreatorCodeの話なんだけど。
Application sageに、AppleScriptコマンドageを定義したとして
 sage.scriptSuiteのAppleEventCode と、
 ageコマンドのAppleEventClassCode って、
やっぱりCreator Codeにしないとだめなのかな
デフォルトの????のままではうごかないの?

Creator codeの申請ページで依頼かけたんだけど、3日たっても
かえってこない...どうすりゃ動くんだ。
477476:2005/05/06(金) 10:10:31 ID:HBW/IKJA

4亀で来た。Apple仕事遅すぎ。あっちは平日だろ。
478名称未設定:2005/05/06(金) 17:45:04 ID:+jFXCesU
初歩的な質問ですがお願いします。
NSTableViewの中のセルを編集してenterキーを押すと次のセル、次のセルと編集モードのフォーカスが移って行きます。
これをとめる方法はありませんか。
479名称未設定:2005/05/06(金) 20:41:18 ID:UKY8l2E4
NSTableViewはNSControlのサブクラスなので、delegateに
- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)command
{
if (selector == @selector(insertNewline:)) {
// Enterでやって欲しいことがあればここに書く
return YES;
} else {
return NO;
}
}
を実装でいけそうな気がする。試したことないけど。

480名称未設定:2005/05/06(金) 20:42:23 ID:UKY8l2E4
間違った
× if (selector == @selector(insertNewline:)) {
○ if (command == @selector(insertNewline:)) {
481名称未設定:2005/05/06(金) 21:20:48 ID:bXjsuOtv
テキスト編集はフィールドエディターの扱いもあるから自分で扱うのは難しい。
同じ疑問にぶつかったときに検索して見つけた方法。
tableviewのサブクラスのほうでtextDidEndEditingをオーバーライドして通知を書き換える:
- (void)textDidEndEditing:(NSNotification *)notification;
{
  if ([[[notification userInfo] objectForKey:@"NSTextMovement"] intValue] == NSReturnTextMovement)
  {
    NSMutableDictionary *newUserInfo;
    NSNotification *newNotification;

    newUserInfo = [NSMutableDictionary dictionaryWithDictionary:[notification userInfo]];
    [newUserInfo setObject:[NSNumber numberWithInt:NSIllegalTextMovement] forKey:@"NSTextMovement"];
    newNotification = [NSNotification notificationWithName:[notification name] object:[notification object] userInfo:newUserInfo];
    [super textDidEndEditing:newNotification];

    [[self window] makeFirstResponder:self];
  }
  else
  {
    [super textDidEndEditing:notification];
  }
}
482名称未設定:2005/05/06(金) 21:22:56 ID:bXjsuOtv
あ、コードの一行目に入ってるセミコロンは消して
483名称未設定:2005/05/06(金) 21:42:52 ID:7s6lf+s8
私も方法を披露させてもらっていいかな。

-(BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(int)row{
NSEvent *event=[NSApp currentEvent];

if ([event type] == NSKeyDown) {
switch ([event keyCode]) {
case 36 :
case 48 :
case 52 :
return NO;
default :
return YES;
}
} else {
return YES;
}
}

こいつを NSTableView の delegate に実装する。
return,tab,enter が押されても次のフィールドには移行しない。
484名称未設定:2005/05/06(金) 22:25:14 ID:+jFXCesU
みなさまレスありがとうございます。
インターフェイスビルだーでちょこちょこといじればできるのかなと思っていたのですが
かなりいろいろといじらなくてはいけないようで驚きです。
ひとつづつ勉強しながら使わせていただきます。

当方のイメージとしてはiTunesのような挙動をしてくれたらいいな、と思っていたのですが
iTunesはCocoaではないんですよね。

ありがとうございました。
485名称未設定:2005/05/06(金) 23:05:34 ID:42snX3QC
なにげにCocoaな純正アプリが思いつかない漏れがいる
486484:2005/05/06(金) 23:25:14 ID:+jFXCesU
481氏の方法が正論だなと思いつつもこんな方法で自分用には十分なのかも。

@implementation CustomTableView
- (void)textDidEndEditing:(NSNotification *)aNotification
{
[super textDidEndEditing:aNotification];
[self deselectAll:nil];
}

@end
487名称未設定:2005/05/07(土) 20:59:35 ID:o2BTDrig
Cocoaでスクリプタぶるなアプリ作るときに、
どうしてもファイルパスの取り扱いが分からないんだ。

アップルスクリプトから渡されたFile Specificationは、こんな形式になるよね
Macintosh HD:Users:hoge:Desktop Folder:ほげほげ.txt
:Desktop Folder:ほげほげ.txt

これを、NSStringで扱えるようなファイルパスへ変換するうまい方法ってある
のかな?つまり、POSIX Pathにしたいんだけど。
/User/hoge/Desktop\ Folder:ほげほげ.txt
〜/Desktop\ Folder/ほげほげ.txt

日本語や、空白や、32バイト以上のパスコンポーネントをうまく扱えるような
すばらしい技を知ってたら教えてほしいな。
488名称未設定:2005/05/07(土) 21:07:19 ID:ujgIqc+/
OK, 誰かCore Dataのオブジェクトモデルの具体的な使い方についてわかりやすく解説してくれ。
プロパティの設定の仕方くらいはわかったが、サンプルを見ても何がどう作用してるのか全然わからない。
489名称未設定:2005/05/07(土) 21:11:39 ID:ujgIqc+/
>>487
return POSIX path of ファイル as Unicode text
でいけないか?
490名称未設定:2005/05/08(日) 17:15:55 ID:T4joxnVC
アイコンについてお聞きします。
システムアイコン(フォルダや白紙の書類など)はどこに保存されているのでしょうか。
また、将来自作のアプリを公開するときにこのようなアイコンを使っても良いものなのでしょうか。
491名称未設定:2005/05/08(日) 18:33:41 ID:N8VfqNb6
>>490
白紙の書類は AppKit.framework/Resources/NSMysteryDocument.tiff かな?
Finder.app の Resources 下の icns か Finder.rsrc かも。

でもAppleの著作物ゆえ流用してはイカンのだろうなと思う。
以前はADCにAquaIconKitというテンプレートがあったんだけどね。
492名称未設定:2005/05/08(日) 20:44:54 ID:T4joxnVC
sudo find / -name "*folder*" -print

こんなことしてみても見つからない。もしかしてリソースフォークに入ってる?
でも128*128のフルサイズのアイコンもあるしなあ。

>>491
バンドルして公開するのはまずいと思うのですが、パスを指定して読み込むのもまずいんでしょうか。
493名称未設定:2005/05/08(日) 21:01:19 ID:GVwLlYZZ
NSWorkspace-iconFor...:は何のためにあるのか考えてみよう。
NSWorkspaceはIcon Servicesのラッパーだから機能が不足なら
直接Icon Servicesを使う。標準的なアイコンは概ね用意されている。
494名称未設定:2005/05/08(日) 21:26:08 ID:PHeyU/T8
http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGIcons/chapter_14_section_5.html

8番目の項目に使うなと書いてあるね
著作権については何も触れていないけど
495名称未設定:2005/05/08(日) 21:44:29 ID:XMPDDloi
それは「ユーザーを混乱させるからそのまま流用するのはよせよ」という意味だろ。
書類のアイコンを作ったりするときに空の文書のアイコンをベースにしても問題はないし。
※この問題ないってのは法的な意味じゃなくソフト作家が使うくらいなら通常容認されてるという意味
496名称未設定:2005/05/08(日) 23:10:19 ID:PHeyU/T8
>>495
>それは「ユーザーを混乱させるからそのまま流用するのはよせよ」という意味だろ。
そうだよ
>>492は書類アイコンを作りたいわけじゃないみたいだからね
497名称未設定:2005/05/09(月) 18:08:31 ID:5rzGHzfa
http://developer.apple.com/documentation/Cocoa/Conceptual/Workspace/Tasks/InformationAboutFiles.html#//apple_ref/doc/uid/20001004-39665

NSWorkSpaceのサンプルコードをみるとなつかしのファイルタイプ使って管理してる。
そういやFinderってCarbonなんだよな。
498名称未設定:2005/05/09(月) 20:19:31 ID:qrBz7TH5
Spotlight importerで検索結果画面の特別な分類を作るにはどうしたらいいんだろ。
(書類、メールメッセージ、イベントとTo DO、みたいな分類)
499名称未設定:2005/05/09(月) 20:24:47 ID:/8izHliD
>>498
Schema.xmlに新しい分類を追加して、GetMetadataForFile()で
attributesに突っ込んでやる
500名称未設定:2005/05/09(月) 20:26:00 ID:/8izHliD
あ、ごめん、書類の種類の事か
それだったら俺も知りたい
誰か教えて
501名称未設定:2005/05/10(火) 20:44:37 ID:i28sCzEf
NSTableViewでセルを選択しているときにコマンド+Cを押すと、BEEP音がなってしまいます。
コマンド+Cを押したときに選択しているセルをコピーするようにするには、どうするといいのでしょう?
TableViewのサブクラスを作ってperformKeyEquivalentをオーバーライドするような感じでいいんでしょうか?

初歩的なことですみませんが、朝からハマってて困ってます。。。
502名称未設定:2005/05/11(水) 00:40:36 ID:aZbLdKpv
- (void)copy:(id)sender
をテーブルのデリゲートでオーバーライド。
503501:2005/05/11(水) 21:10:41 ID:5C/b9u54
>>502
未熟者でした・・・。試してみる&ドキュメント探してみます。

お陰で正しい道を歩めそうです、ありがdでした。
504名称未設定:2005/05/12(木) 00:04:48 ID:Zm5F5IlU
CFStringRefとNSStringの変換について質問。

cfRefPath = (CFStringRef) [ MoviePath stringByExpandingTildeInPath ];

ネットで、CFStringRefとNSStringがキャストで相互変換出来るって見つけた
んでこう書いたんだ。この後これをQTの関数で処理させるんだけど、これ自体
は間違っていないよね?

で、CFStringRefに型変換したけど、stringByExpandingで生成された領域
自体ってAutoReleaseされるんだよね?(MoviePath自体はAutoRelease)

そう思ってたから、CFRelease(cfRefPath);って書いてないんだ。
もしかして、CFStringRef型に放り込んだ時点でretainされたことになってて
手でreleaseしないと残りっぱなしになるとか、そういうことなんだろうか。
実際、この(CFStringRef)cfRefPathは、ルーチン抜けたら破棄されてよいの
だけど、 

確実に手で破棄すべきなのかな?どうすればいい?
505名称未設定:2005/05/12(木) 00:10:29 ID:zAwt8Uqa
相互変換できるなら自分で retainCount を数えてみればいい。
506名称未設定:2005/05/12(木) 01:05:35 ID:nEgSiXbE
まったく検証してないけど、autoreleaseされると思う。
キャストしただけでCFRetainされたりしたら気持ち悪すぎ。
507504:2005/05/12(木) 07:12:04 ID:vsZ1lpmm
>>505,506
retainカウントはみてないけど、
 DFRelease(cfRefPath);
とか
 [(NSString*)cfRefPath release];
とかやると、ルーチン抜けたところで
NSApplicationのAutoreleaseでクラッシュする。
AutoReleaseなやつを手でreleaseしたらクラッシュ?
まあいいや

やっぱり手でリリースする必要は無さげ。よかったー
これ自体はリークの原因じゃないのね。

やっぱりQTのSGStopがリークしてる気がしてきた...
一応BugReport中なんだけど、ずっと放置される予感...
(10.3.9/QT652)
508名称未設定:2005/05/12(木) 07:37:18 ID:xmCvXO/N
>>507
>AutoReleaseなやつを手でreleaseしたらクラッシュ?
そりゃクラッシュするよ
手でreleaseした時点で解放されたオブジェクトをAutoreleasePoolがさらに解放しようとするんだから
509名称未設定:2005/05/12(木) 09:40:40 ID:Gq5N/zaB
AppleがObjective-CにGCを導入しようとしてるらしい。

http://lists.apple.com/archives/objc-language/2005/May/msg00021.html
510名称未設定:2005/05/12(木) 13:13:41 ID:x3Npj/aA
開発のスピード化的には正しい方向ですな
511名称未設定:2005/05/12(木) 15:47:53 ID:t2ipu7s3
そのうちObjective-Dにでもなるかな。
512名称未設定:2005/05/12(木) 19:21:50 ID:kAOPrPMn
ある文字列のなかに特定の文字が何回あらわれるかを調べるにはどうしたらいいですか。
NSScannerの使い方がよく分からないです…orz
513名称未設定:2005/05/12(木) 20:05:43 ID:bv7JRmVl
ごく単純な方法。
NSArray *array=[@"ある文字列" componentsSeparatedByString:@"特定の文字"];
NSLog(@"%d回",[array count] - 1);
514名称未設定:2005/05/12(木) 20:09:40 ID:SF+28twb
NSScannerの使い方はCocoaはやっぱりに昔出てた
今もあるかどうかはわからん
探してみ
515512:2005/05/12(木) 21:04:44 ID:kAOPrPMn
ありがとうございます。解決しました。
516名称未設定:2005/05/13(金) 00:44:27 ID:JGLy4geK
別にD言語はわざわざObjectiveにする必要ないだろ。
517名称未設定:2005/05/13(金) 03:38:17 ID:DgmD7r7D
良スレ
518名称未設定:2005/05/13(金) 10:29:23 ID:2N+ooNYP
NSString* contents=[NSString stringWithContentsOfFile:filename];
こんなかんじでファイルを読み込むと、
ファイルサイズが100kbを超えた辺りからcontentsがnilになって読み込みに失敗してる。

メモリを確保できなかったってことなんだろうけど、回避するにはどうしたらいいかな。

//Cocoaのスタックって512kbくらいなかったっけ。
519名称未設定:2005/05/13(金) 11:04:55 ID:gX7RwSl4
ファイルの容量じゃなくてエンコードの問題じゃないか?
stringWithContentsOfFile:はデフォルトのエンコーディングでエンコードするけど
うまくエンコできなかったときはnilが返ってくるから
NSData dataWithContentsOfFile:で読み込んで
initWithData:encoding:で適当なエンコーディングを指定してNSStringにしてみたら?

//オブジェクトはスタックじゃなくてヒープに確保されてるんじゃないかと思う
520名称未設定:2005/05/13(金) 17:07:07 ID:2N+ooNYP
遅くなったがサンクス。

これで読み込み成功。
NSData* theData=[NSData dataWithContentsOfFile:filename];
NSString* contents=[[[NSString alloc] initWithData:theData encoding:8] autorelease];

ファイルサイズに関係なく、エンコード判別に失敗してただけのようだ。

//しかし失敗する原因はなんだろう。自動判別に失敗はつきものなんだろうか。
521名称未設定:2005/05/13(金) 20:28:39 ID:MIPYGU/n
>>520
stringWithContentsOfFile:は完全な自動判別じゃなくて
Unicode-> UTF-8-> default C string encoding
の順番でチェックしてるだけだそうだ

ちなみにTigerからは
stringWithContentsOfFile:encoding:error:
とかいうのが増えてるね
522名称未設定:2005/05/13(金) 22:10:36 ID:HKHhSaS1
というか stringWithContentsOfFile: は deprecated になりましたな。
523名称未設定:2005/05/13(金) 22:20:48 ID:DWCzW2AC
お、ほんとだ、見落としてた
当面はNSData経由がベターかな
524名称未設定:2005/05/14(土) 15:19:20 ID:5pUf/hGo
directoryContentsAtPath:で取得したファイル一覧fileListから.DS_Storeを
消したいんですが、if文で判別させようとしてもうまくいきません。

if ([fileList objectAtIndex:0] == @".DS_Store"){
//処理
}

↑では処理が行われないようなのですが、@".DS_Store"の部分は
どのように指定すれば良いのでしょう?


また、fileListが空の配列だった場合に、

if (fileList == [NSArray array]){
//処理
}

↑のような書き方をしても処理が行われないようなのですが、
これも何か別の書き方があるのでしょうか?
525名称未設定:2005/05/14(土) 15:57:55 ID:VIAJJ+af
>>524
isEqualToString:
isEqualToArray:
526sage:2005/05/14(土) 15:58:41 ID:1qYViEOJ
>>524
最初のは
if ([[fileList objectAtIndex:0] isEqualToString:@".DS_Store"]) { ... }

2番目は
if ([fileList count] == 0) { ... }
527名称未設定:2005/05/14(土) 16:50:14 ID:H1E2Qx+S
.DS_Storeが一番目とは限らないだろ。
if([fileList containsObject:@".DS_Store"]) とやるべき。
528名称未設定:2005/05/14(土) 21:06:34 ID:/0zVarlc
>>524
if ([fileList objectAtIndex:0] == @".DS_Store")
と書くと「オブジェクトの値」の比較ではなく
「ポインタの値」を比較しているということね
オブジェクトの値を比較したいときは>>525のようなメソッドを使う
529名称未設定:2005/05/15(日) 02:57:53 ID:pEx54/+u
プロジェクトのResource内にある「hoge.txt」の内容をNSStringにするにはどうすればいいのですか
530名称未設定:2005/05/15(日) 04:10:10 ID:C2iSLDNf
NSString *string=[NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"hoge" ofType:@"txt"]];
こんぐらい自分で調べようぜ。
531名称未設定:2005/05/15(日) 04:52:59 ID:pEx54/+u
>>530
ありがとう。
なんかいろいろやってたら分け分かんなくなって(言い訳
532名称未設定:2005/05/15(日) 06:29:02 ID:juztDK8h
>>525-528
レスありがとうございます。
ちゃんとそれ専用にメソッドがあるんですね。
やっぱりAppleScriptの感覚でいるとダメですね。
>>526の2番目はちょっと目から鱗です。なるほど。
533名称未設定:2005/05/15(日) 09:09:55 ID:4O3xQrKS
最近活性化してる。Tiger効果か?
534名称未設定:2005/05/16(月) 14:07:56 ID:YBz3/OPJ
NSLog()関数に渡す引数には
ascii文字が最低1文字含まれていないといけないようなきがする。
535名称未設定:2005/05/17(火) 12:27:33 ID:rPsAZdHa
NSMutableStringって結合できないのか。
('A`)マンドクセ
536名称未設定:2005/05/17(火) 12:27:56 ID:rPsAZdHa
>>535
NSMutableAttributedStringのまちがい
537名称未設定:2005/05/17(火) 12:38:14 ID:axJST9jK
replaceCharactersInRange:withAttributedString:か
insertAttributedString:atIndex:を使えば良いんじゃないの?
538名称未設定:2005/05/17(火) 13:38:49 ID:e0PjH5HO
結合の意味がわかんないけど
appendAttributedString: といっておく。
539名称未設定:2005/05/17(火) 16:38:57 ID:rPsAZdHa
うわーーーーーーーーーー

見落としでした。
はずかしいいいいいいいい
540名称未設定:2005/05/17(火) 20:58:21 ID:l7tLORJW
>>537
結合で insert を出してくるなんて、エロすぎます。
541名称未設定:2005/05/22(日) 18:36:15 ID:j48V2VhB
for(i=0;i<100000;i++){
  [myTextField setIntValue:i];
}

特に意味はないんだけど、これを実行するとしばらくハングした後に99999が表示される。
0,1,2…と順に表示させるにはどうするんだろ。
542名称未設定:2005/05/22(日) 18:53:03 ID:7zRntq9O
NSTimerですかね
543名称未設定:2005/05/22(日) 18:53:42 ID:WSQfHJEK
NSAnimation
544名称未設定:2005/05/22(日) 19:28:52 ID:Pzt6Y2uD
[myTextField display];
ではだめだろうか?
545名称未設定:2005/05/22(日) 19:42:26 ID:j48V2VhB
>>544
ビンゴ!
それですな。

しかし、display呼ばなかったらイベントループが終わるまで変更が反映されないのか。覚えとこ〆(゚▽゚*)
546名称未設定:2005/05/22(日) 19:49:28 ID:7zRntq9O
それだと固まるのは直らないような希ガス
547名称未設定:2005/05/22(日) 20:00:54 ID:RUm9rWYW
>>545
基本的に全部そうだと思う
setImage:とか
548名称未設定:2005/05/22(日) 20:21:06 ID:j48V2VhB
>>546
別スレッドを立ててみた

- (IBAction)start:(id)sender
{
[NSThread detachNewThreadSelector:@selector(count:) toTarget:self withObject:nil];
}

-(void)count:(id)object
{
NSAutoreleasePool* arp=[[NSAutoreleasePool alloc] init];
int i;
for(i=0;i<100000;i++){
[myTextField setIntValue:i];
}
[arp release];
}

これでもカウンタは回る。display呼ばなくてもいいのはなぜだろう。
549名称未設定:2005/05/22(日) 20:24:47 ID:j48V2VhB
追記

メインのイベントループが待機中だったらビューの再描画が行われるのかな?
550名称未設定:2005/05/22(日) 20:27:32 ID:Pzt6Y2uD
スレッド切り替えのタイミングで再描画してくれるんじゃないの?
551名称未設定:2005/05/22(日) 20:51:19 ID:of2CaBrR
Cocoaアプリでは基本的に、イベントループ1回(例えばアクションメソッドが呼ばれてreturnするまで)につき、
最後にセットされた描画内容を描画する。
552名称未設定:2005/05/22(日) 21:16:50 ID:j48V2VhB
>>548をビルドしてデバッガで追跡したけど
[myTextField setIntValue:i];
この行を処理したときにテキストフィールドも変更される。

別スレッドをたてるとそうなると思うしかないのか。
553名称未設定:2005/05/22(日) 21:39:27 ID:+Q9FF1ip
NSTextFieldってスレッドセーフだっけ?
NSTimer使うのが正解では?
554名称未設定:2005/05/23(月) 01:08:32 ID:r0VZURj3
>>548
これはスレッドを使う場面じゃないです。すでに指摘されている通り NSTimer を使ってメインスレッド内で処理すべきです。

別スレッドからの GUI の更新は Cocoa に限らず基本的にどのライブラリでもタブーと思ってください。
555名称未設定:2005/05/23(月) 13:47:00 ID:athMwCy3
別threadから、main threadで関数指定で実行するmethodがあるやん。
556名称未設定:2005/05/23(月) 14:19:05 ID:NtBZPf71
[hoge display];
はスレッドセーフではない。

[hoge setNeedsDisplay:YES];
はスレッドセーフ。

[hoge setNeedsDisplay:YES]; 
は、更新フラグを立てるだけね。
メインランループの更新手続きのときにメインスレッド上で更新される。
557名称未設定:2005/05/23(月) 20:15:07 ID:DABA00ig
マウスカーソルを合わせたときに、
ラベルっぽいメッセージがポップアップするのってどうやるのでしょう?
よくブラウザでalt属性を表示させるようなアレ。
558名称未設定:2005/05/23(月) 20:24:29 ID:8+aRcpKK
Tooltipのことか?
559名称未設定:2005/05/23(月) 20:38:12 ID:CmeAFUL5
>>557
IBのパレットをよく見よう
560名称未設定:2005/05/23(月) 20:41:12 ID:wjZ5cKPp
関係ないけど tooltip が目的なら alt 属性じゃなく title 属性を使おう。
561557:2005/05/23(月) 21:17:40 ID:v9mr62wa
>>558-560
それでした。cocomonaのソース見て、NSPanelから手作りしなきゃならないのかなー
と不安になってたとこでした。

毎度どもです。
562名称未設定:2005/05/24(火) 00:18:41 ID:NarDaQ+W
@implementation
- (void)start{
num=0;
timer=[NSTimer scheduledTimerWithTimeInterval:0.0 target:self selector:@selector(count:) userInfo:nil repeats:1];
}
-(void)count:(id)object{
[myTextField setIntValue:num++];
}
@end

こんな感じでカウンタ回りました。
で、カウンタ止めたくなったら
[timer invalidate];すると。
563名称未設定:2005/05/24(火) 02:10:12 ID:+SiAvWxv
インターバルってゼロを指定していいんですか?
564名称未設定:2005/05/24(火) 02:13:59 ID:cAk+DdOo
人にきくまえに先ずはドキュメントをよみましょう。
565若葉マーク:2005/05/26(木) 08:10:15 ID:8b78RQfH
「Happy Macintosh Developing Time 」を、xcode1.5でお勉強中です。

P130の「アウトレットとアクションをつなぐ」と言うところで困ってます。
本の通りにしたはずなのに、control+D&Dが全く反応しません。
xcode1.1でも同じでした。

ゴールデンウィークから立ち止まって、抜け出せません。

IB単体で、やってみましたが駄目でした。

お願い、誰か助けて〜〜〜〜〜 !!
566名称未設定:2005/05/26(木) 13:20:18 ID:DlO0Ugb4
よくわからんけどあんな簡単な事を本よりも詳しく説明するなんて至難の業だと思うが。
何がどうダメなのか詳しく説明しろよ。
ドラッグしても線が出ないとか、対象につながらないとか、つないでも元に戻ってしまうとか。
567名称未設定:2005/05/27(金) 00:57:49 ID:/uv+d1WC
>>565
とりあえず操作が合っているか確認。
1. Control を押しながらオブジェクトをクリック
2. そのまま Control は押しつつマウスをドラッグすると線が引かれる
3. そのまま線をもう一方のオブジェクトに重ねる
4. マウスボタン離す
Interface Builder の "Instances" からじゃないと接続できないからね。"Classes" じゃだめですよ。もしくはウィンドウ上に配置したオブジェクトね。
568若葉マーク:2005/05/27(金) 08:51:45 ID:J3Pe2wTO
説明不足で、スミマセン。
>ドラッグしても線が出ないとか、対象につながらないとか、つないでも元に戻ってしまうとか。
ドラッグしても線が出ない、かつ、対象につながらない。
のです。

>1. Control を押しながらオブジェクトをクリック
OKでした。
>2. そのまま Control は押しつつマウスをドラッグすると線が引かれる
これが、出来ない。 ?(tt)??

>3. そのまま線をもう一方のオブジェクトに重ねる
>4. マウスボタン離す
2.が出来ないから、3,4はできない。

>Interface Builder の "Instances" からじゃないと接続できないからね。"Classes" じゃだめですよ。もしくはウィンドウ上に配置したオブジェクトね。
"Instances" からなんだけどね〜〜〜〜?
不思議だ。
569名称未設定:2005/05/27(金) 10:05:25 ID:4dPXf/wt
>>568
まさかとは思うが、controlキーってどのキーだか解ってるよな?
570若葉マーク:2005/05/27(金) 12:00:29 ID:J3Pe2wTO
鉛筆の絵が書いてあるキー、でしょ。
キーにも、しっかり「control」って、書いてありました。

ちなみに、サブ・オブシェクトを作るときは、しっかり反応してましたよ。
571名称未設定:2005/05/27(金) 12:10:09 ID:qR4L2393
あなたはどの程度若葉マークなのかそれが知りたい
名前欄にあえて「初心者」とか書いちゃう人は
いろんな意味で相当な初心者に思えてしまうのよ条件反射的に
それはもうドラッグとかドロップとかちゃんと意味分かってるんだろうかと気をもむぐらい

実際どうなの
パソコン歴は長くて部分的には習熟してる中〜上級ユーザーなのか
まだ始めたばっかりの初級ユーザーなのか
572名称未設定:2005/05/27(金) 12:10:15 ID:37qAFHNZ
Carbon Nibじゃないだろうな
573若葉マーク:2005/05/27(金) 16:06:53 ID:J3Pe2wTO
言葉足らずでスミマセン。

>実際どうなの
>パソコン歴は長くて部分的には習熟してる中〜上級ユーザーなのか
>まだ始めたばっかりの初級ユーザーなのか
パソコン歴は長いです。
仕事にしているぐらいです。(Linux,H8マイコン,ハード設計、など)
でも、macのプログラムに関しては、さっぱりです。

>Carbon Nibじゃないだろうな
英文マニュアルにも、「cocoaのみ」と書いてあったので、その辺も確認しました。
cocoaのアプリで動作確認してますけど。
574名称未設定:2005/05/27(金) 18:02:41 ID:OGUHvukN
>>573

そこまで壊滅的だと、もっと基本的なところから確認した方がいいと思うよ。
たとえば、Control キーが(ハード的に)使えない状況になってないかとか。

Finder から「ファイル」メニューを開いたままControl キーを押したり離したり
して下さい。
「情報を見る」が「概要情報を見る」と切り替われば Control キーが有効。
変化が無ければキーボードが壊れてるって事で。

あとさ、あちこちの掲示板で同じ質問するのが悪いとは言わないけど、いい気はしない。
2ch なら「助けて〜」って書き方でもいいけど、ハードなアプリ屋が集う板で
同じ表現だと荒らし寸前になっちゃうよ。
575名称未設定:2005/05/27(金) 18:41:04 ID:yBBnHT7U
まずはDevToolsを再インストールじゃないか?
576若葉マーク:2005/05/27(金) 19:50:19 ID:J3Pe2wTO
>あとさ、あちこちの掲示板で同じ質問するのが悪いとは言わないけど、いい気はしない。
>2ch なら「助けて〜」って書き方でもいいけど、ハードなアプリ屋が集う板で
>同じ表現だと荒らし寸前になっちゃうよ。

↑本当に、スミマセン。
ごめんなさい。

でも、本当に困っているのも事実です。

xcode1.1を再インストールし、これが駄目だったのでxcode1.5を購入しました。
で、結局同じ。

もう、どうしたら良いものやら。
577若葉マーク:2005/05/27(金) 20:43:39 ID:J3Pe2wTO
土日に掛けて、ハードディスクの掃除をしてみます。
(駄目もとで)

それで、再インストールしてみます。
(余り期待出ませんが)

ネチケット違反の件は、重ねてお詫び申し上げます。

はぁ〜。
落ち込むなぁ。
578名称未設定:2005/05/27(金) 23:41:59 ID:MnR9UxXY
>>568
>> そのまま Control は押しつつマウスをドラッグすると線が引かれる
>これが、出来ない。 ?(tt)??

マウスやコンテキストメニュー関連で、妙なユーティリティを
インストールしてやしませんか?
579名称未設定:2005/05/27(金) 23:59:58 ID:L3bjC4cY
>>568
Interface Builder の環境設定で、Editingの「Lock all connections」の
チェックは切れてるか?
580566:2005/05/28(土) 01:48:57 ID:9KnibfJ3
>>577
とりあえず、再セットアップなら次の順序を試してみるのが良いかも。

0. Control を認識しているかチェック

たとえば Interface Builder の Palettes Window (Command-/) のツールバーでコンテキストメニューが出せるか。(2ボタンマウスがあれば)右クリックで出ることを確認して、同じように Control + クリックしてみる。

1. ~/Library/Preferences にある com.apple.InterfaceBuilder.plist 削除

これでもう一度試してみる。

2. 捨てアカウント作って試す

ユーザーの設定ファイル類がクリーンな状況になるんで。そのとき言語も English にしておくと良いかもしれん。

3. Interface Builder の再インストール

Interface Builder だけ再インストールって出来るのか分からんけど、確実にいくなら Developer Tools 全体のアンインストールと再インストールか。

4. OS の再インストール?

Interface Builder だけに問題が発生する状況というのがよく分からんので最終手段といっても効果の程はどうだろう。
581名称未設定:2005/05/29(日) 15:15:31 ID:PEbgzBdf
NSTextViewのBackgroundColorを透明にするにはどうしたらいいですか?
IBでOpacityを0にするとIB上では透明になるんですが
ビルドすると真っ黒になってしまいます。
582確証なし:2005/05/29(日) 16:02:48 ID:cILgul7g
isOpaqueで何かえしてる?
サブクラス化してYES返すようにしたらだめだろうか?
583582:2005/05/29(日) 16:13:27 ID:cILgul7g
NOかもしれん・・・
Opqqueって不透明、だな
584名称未設定:2005/05/29(日) 16:38:37 ID:PEbgzBdf
NSTextViewのサブクラスでこうやってもだめでした。

#import "MyTextView.h"

@implementation MyTextView
-(id)init{
[super init];
[self setDrawsBackground:NO];
return self;
}

-(BOOL)isOpaque{
return NO;
}
@end

585名称未設定:2005/05/29(日) 17:18:24 ID:gfhq9Kp4
>>584
initWithFrame:textContainer: を同様に override してみたらどうでしょう
586名称未設定:2005/05/29(日) 18:08:29 ID:X3+diVTw
普通のウィンドウだからじゃないか?
ウィンドウも透明にしてやらないとダメだろ
587名称未設定:2005/05/29(日) 20:39:53 ID:PEbgzBdf
>>586
NSTextFieldのようにウインドウに直接テキストを張り付けたいんですよ。
IB上のNSTextFieldには「Draw」のチェックボックスがあるんですけど
NSTextViewにはないし。

ドキュメントを読む限りではsetDrawsBackground:で変更できるはずなんですけど。
588585:2005/05/29(日) 21:59:00 ID:gfhq9Kp4
>>584
initWithFrame:textContainer: じゃなくて initWithFrame: を override するべきか。

initWithFrame:textContainer: は initWithFrame: をよんでいるが、
initFrame: は init をよばないので、init だけを override してもダメみたい。

- (id) initWithFrame:(NSRect)frameRect
{
if ((self = [super initWithFrame: frameRect])) {
[ self setDrawsBackground: NO ];
}
return self;
}

isOpaque の override は要らないはず。NSView の default が NO だし。
589名称未設定:2005/05/29(日) 22:58:38 ID:X3+diVTw
>>588
IBで作ってるみたいだからinitをオーバーライドしてもダメでは?
590566:2005/05/30(月) 01:28:06 ID:rh2q+A0O
>>589

IB で Dran & Drop したコントロールにカスタムクラスを指定した場合は、
initWithCoder:
が呼ばれます。
http://www.omnigroup.com/mailman/archive/macosx-dev/2001-April/012348.html
591590:2005/05/30(月) 01:34:55 ID:rh2q+A0O
メールの文中をおおまかにダイジェストすると、
IB のコントローラは nib を保存するときには IB 上の情報を使って archive されて保存される (encodeWithCoder:)。で、プログラムが実行されるときには unarchive されるので initWithCoder: が使われる。
たぶん IB で Window とかに Drop したときに initWithFrame: が使われているんだろう。

# NSTextField で実際に試したわけじゃないですが、NSOpenGLView にカスタムクラスを指定したときは確かに initWithCoder: が呼ばれました。
592590:2005/05/30(月) 01:58:14 ID:rh2q+A0O
何度もすまんです。

こんな話もあるんで、
http://www.tech-arts.co.jp/macosx/macosx-dev-jp/htdocs/4200/4282.html
気をつけてください。

nib でインスタンス化されたコントロールは
1. 基本的に initWithCoder: が使われる
2. ただし NSCustomView の場合は initWithFrame: が使われる

file:///Developer/ADC%20Reference%20Library/documentation/Cocoa/Conceptual/LoadingResources/Concepts/NibFileLoaded.html

に詳しい。カスタムクラスを指定した場合は、nib からの unarchive の際に、元のクラスを decode してカスタムクラスと交換する処理が入るらしい。だから initWithCoder: / initWithFrame: の中で

if (self = [super initWithCoder:]) // or [super initWithFrame:]
{
// initialization
}

という書き方が必要になると思われ。
593名称未設定:2005/05/30(月) 04:56:47 ID:BaUXDQzj
Panther以降用のアプリでCoreImage使おうと思って、NSViewのサブクラスで
#import <QuartzCore/QuartzCore.h>
して、CIExposureSampleをまんまパクってやってみたんだけど、
これPantherだと当然落ちるか起動できないかですよね?
Tigerの場合はCoreImage使って、Panther以下の場合はそのままってどうやれば良いんでしょうか
594若葉マーク:2005/05/30(月) 08:12:23 ID:fhXAQITi
書き込みが遅れてスミマセン。

結果報告

>Interface Builder の環境設定で、Editingの「Lock all connections」の
>チェックは切れてるか?
(@o@)
これですっ!  これ、これっ!!

動きました。
やったーっ!!  ありがとうございます。 感謝してます !



595名称未設定:2005/05/30(月) 08:27:29 ID:RzKChx6+
態度悪いなぁもぅ・・・
596名称未設定:2005/05/30(月) 12:57:42 ID:7/APgPeK
NSTextViewのサブクラスをIBで?
と一瞬疑問だったんだが、TigerからはIBでNSTextViewのカスタムクラスを指定できるようになったんだね。
楽になったというか、やっと普通になったというか。
これで作ったnibファイルはPantherで使えるのかな?
597名称未設定:2005/05/30(月) 13:02:56 ID:p8TxF1xA
>596
元から出来たよ。
598名称未設定:2005/05/30(月) 18:03:23 ID:LTkdk3cw
すみません、最近Cocoaを始めたものなんですが
クラスが多すぎて調べたいactionクラスがどこに接続されてるのかわからない場合
簡単に調べられる方法はないでしょうか・・・?
どうか知恵をお貸しいただきたい m(__)m
599名称未設定:2005/05/30(月) 18:17:25 ID:qucfakbJ
inspectorのconnectionで該当するactionを選択すれば線が出てくるので
確認できる。
600名称未設定:2005/05/30(月) 19:19:56 ID:KV5CkZLk
NSTableViewにフォーカスがあるかどうかって、バインディングで取れますか?

具体的には、フォーカスある時だけメニューをクリックできるようにしたいのでつ
601名称未設定:2005/05/30(月) 22:12:43 ID:8t2b7XCh
>>600
http://developer.apple.com/documentation/Cocoa/Reference/CocoaBindingsRef/index.html
には見た感じなさそうだね。

無いということは、たんに機能としてまだ実装されていない場合かもしれんけど、フォーカスの有無によってインターフェースに変化があることを Apple の Human Interface が推奨しないかのかもしれない。

項目が選択されているかどうか (selectionIndexes) じゃだめなの?
602名称未設定:2005/05/30(月) 23:16:38 ID:a3we2AYb
メニューをクリックってのがどういう意味かわからんけど、
メニューバーのメニューをどうこうするなら validateMenuItem: でやるのが筋じゃない?
603名称未設定:2005/05/30(月) 23:23:34 ID:U5fWsCV0
>>594

解決してよかったね。
自己満足してないで、あちこちの掲示板に書き散らした
「助けて〜」にフォロー入れてきなよ。

マックのプログラマが少ないとかボヤくより先にやる事あるでしょ。
604名称未設定:2005/05/31(火) 03:56:09 ID:QuVSK0s0
あちこちの掲示板のことなんかどうでもいいよ
話題に出されても何ら面白みがない
605名称未設定:2005/05/31(火) 11:13:47 ID:O/Htw6hf
マルチだってわかってんなら最初に指摘しとけ
606名称未設定:2005/05/31(火) 21:05:12 ID:7sHY0re7
NSXMLParser を使っています。
これで丸数字などのいわゆる機種依存文字の入った XML ファイルを読み込むと
アプリがクラッシュしてしまいます。
encoding="shift-jis" や encoding="euc-jp" で必ずクラッシュします。
これを回避する方法はないでしょうか。
607名称未設定:2005/05/31(火) 21:49:21 ID:DE4OfkaE
パネルウインドウで、前はIBからタイトルバーをボタンオンオフで切り替えできたけど、
Tigerは出来なくなった?
608名称未設定:2005/05/31(火) 21:49:56 ID:DE4OfkaE
>>607
訂正
タイトルバーの位置をボタンオンオフで上と横切り替えできたけど
609名称未設定:2005/06/01(水) 15:23:01 ID:6ssMCk79
http://ridiculousfish.com/blog/
ここ既出ですか?
I’m a developer on Apple’s AppKit team; I work to make Cocoa better.
With a few exceptions, we are responsible for both AppKit and Foundation. This is my blog.
610名称未設定:2005/06/02(木) 01:09:28 ID:jJXefM8H
NSProgressIndicatorを使ってファイルコピーの進捗を表示してるんだけど、
一瞬で終わった場合、バーが満タンになる前に終了してしまいます。

どうやったら、必ずバーを満タンまで描画させられるんでしょうか。
611名称未設定:2005/06/02(木) 02:25:55 ID:m6UqndAw
コードがまったくわからないから setDoubleValue: とだけ言ってみる
612名称未設定:2005/06/02(木) 09:08:37 ID:RJT+Nn8X
満タンにしてから閉じればいいだろ。一瞬で終わらなくても満タンになって
から終わるんだから、満タン表示が2回になってもコストは小さい。
613600:2005/06/02(木) 16:39:31 ID:jJ2uH3Jh
>>601,602
どもです。validateMenuItem: で実装できました。

NSMenuItemのBindingにenableってのを見つけて、これに直につないだら楽できるのになー
と思ってたのですが、そっちの方が面倒そうですね。
614名称未設定:2005/06/02(木) 21:27:29 ID:fcMI/f1n
>>601
>フォーカスの有無によってインターフェースに変化があることを Apple の Human Interface が推奨しないかのかもしれない。
特定のビューにフォーカスがなきゃ機能し得ない操作なんていくらでも想像つくだろ?
アホチンがHuman Interface語るな。
615名称未設定:2005/06/02(木) 21:59:50 ID:QH98HzNs
煽るならもうちょっと早くな。
616名称未設定:2005/06/03(金) 00:11:00 ID:h6FkukEA
>>587
もう解決したかな?
NSTextViewのカスタムビューを作って、背景をウインドウの背景と同じにしたら?
617名称未設定:2005/06/03(金) 01:26:25 ID:3rZqXquV
NSOpenPanelをrunModalで出してても、アプリメニューの
「アプリを隠す」ってのだけは有効なままだけど、
自分で作ったNSWindowをrunModalForWindowすると、
アプリメニューが全部Disableになるんだが、
有効にする方法ってあります?
618名称未設定:2005/06/03(金) 05:24:39 ID:b+qxq1Si
>>616
587ですが、素のNSTextViewに
setBackgroundColor:[NSColor windowBackgroundColor]を投げてやればOKでした。
clearColorじゃダメなんだということが分からずお騒がせしてしまいました。
619名称未設定:2005/06/03(金) 10:41:05 ID:MZsfCU6C
ビルドすると

main.m:13: warning: passing argument 2 of 'NSApplicationMain' from incompatible pointer type

って警告が必ず出るんですけど、無視していいんでしょうか?
620名称未設定:2005/06/03(金) 11:45:25 ID:GPMycnL1
その行の内容に因る。
621名称未設定:2005/06/03(金) 11:58:15 ID:z3yJ4Y6L
#import <Cocoa/Cocoa.h>

int main(int argc, char *argv[])
{
return NSApplicationMain(argc, argv);
}

普通のmain.mです。
どっかでおかしなことやってるってことなんですかね?
622名称未設定:2005/06/03(金) 12:08:16 ID:CneB4aAe
>>621
Xcode1.2ぐらいの問題じゃなかったっけ?
無視してもいいし、気になるなら
  (const char**)argv
とかしとけばいい。
DeveloperTools最新にすれば出なくなったはず。
623619:2005/06/03(金) 12:48:48 ID:mdifTZXg
Xcodeはタイガーに付いていた2.0です。
でもソースは古いバージョンで作成しました。
624619:2005/06/03(金) 12:51:35 ID:mdifTZXg
でも無視することにしました
どうもありがとうございました。
625名称未設定:2005/06/07(火) 03:12:33 ID:Uj71mhZo
Cocoaはびっくり!!!
ホントに再コンパイルだけで大丈夫?
626名称未設定:2005/06/07(火) 11:03:53 ID:5wOu+AlE
Cocoaを勉強してまもないものでしが、疑問が湧いたので
教えてくださいまし....

プロジェクトのテンプレートから作成した自分のプロジェクト
にあるMainMenu.nibには、ブランクなWindowが最初からあるので、
実行時にMainMenu.nibが非アーカイブ化されて、
何もコーディングしなくても、Windowが表示されるという理解でした。
ところが、このMainMenu.nibに始からあるWindowを削除して、
自分でIBのパレットからWindowのインスタンスをMainMenu.nibに
追加しただけでは、実行した時Windowが表示されないんですが、
なぜなんでしょうか?
#削除は誤って消してしまったんでがす...

nibにあるオブジェクトは、実行時に読み込まれることで
非アーカイブ化されて、nibの中にあるオブジェクトが
インスタンスとして再生/表示されると思ってたんでげすが、
どうも間違って理解してるかなぁと。
確かに、デフォルトのMainMenu.nibに自分でWindowを追加しても
実行時は、始からあるWindowしか表示さえないような感じだし。
nibを読み込んだ時、オブジェクトのインスタンス化する、しないを
制御する設定があるとか?でしょか....
長々となってしまいますたが、ご指導お願いします。m(_ _)m
627名称未設定:2005/06/07(火) 11:11:22 ID:x3On/PoM
長文書く前に IB を隅から隅まで探してみよう。
628名称未設定:2005/06/07(火) 13:11:37 ID:lkP+VnYs
シフトとアップルキーとiを押してインスペクタ表示させて
enableで目的達成かな?
629名称未設定:2005/06/07(火) 13:19:43 ID:C8fP4LT5
visible at launch time
630名称未設定:2005/06/07(火) 13:43:08 ID:PZXHGsMj
Intel版MacOSXでもCocoaでアプリケーションつくれるんだろうな?

今やってる事を、無駄にしてくれるなよ。
631名称未設定:2005/06/07(火) 13:45:21 ID:sd3uGvkI
>>630
コンパイラー(gcc)の問題だけだから、大丈夫じゃね?
632名称未設定:2005/06/07(火) 13:47:46 ID:bjquDwGR
少なくともカーボンは死亡?!
633名称未設定:2005/06/07(火) 13:56:43 ID:PZXHGsMj
ClassicもCarbonも、もう要らんでしょ。

それより、MacでMacOSXとWindowsがネイティブ動作できるわけだ。
別にPowerPCの信奉者じゃないから、これはこれで便利かもしれん。

ノートタイプにはPowerPC G5は載りっこなかったわけだし。
634名称未設定:2005/06/07(火) 14:33:35 ID:bjquDwGR
OC=>C#になったりして
635名称未設定:2005/06/07(火) 14:40:18 ID:QYcijSsv
CPUが変わっただけで開発言語まで変わるわけないだろ。
636名称未設定:2005/06/07(火) 14:46:33 ID:sd3uGvkI
>>633
Windowsが今のX窓と同じ気軽さで動作するにはもう少し時間が必要だろうけどな。
637名称未設定:2005/06/07(火) 15:03:33 ID:EuijbslM
>>636
メモ帳程度なら今でも(ry.....
638名称未設定:2005/06/07(火) 21:10:16 ID:cwOdR+f+ P2@ 218.177.208.63(YahooBB218177208063.bbtec.net)
>>634
そーなったらいいのにな〜♪
639625:2005/06/08(水) 00:52:25 ID:1K11YB8S
>>627, 628, 629
ありがとございますた。解決しました。
精進します。
640名称未設定:2005/06/08(水) 17:03:46 ID:YvSsftIJ
NSEventのtimestampはイベントが起こった時の起動してからの秒数(NSTimeInterval)のようですが、
現在の起動してからの秒数はどっかにありますか?
641名称未設定:2005/06/08(水) 17:13:50 ID:xXFoKkeS
[[NSApp currentEvent] timestamp] かなぁ
642名称未設定:2005/06/08(水) 17:27:38 ID:YvSsftIJ
currentEventは最後のイベントらしいので結局同じイベントのtimestampしか得られないっぽいです…
やりたいのはviewのscrollWheel:(NSEvent *)theEventでtimestampとdeltaYを得て、
現在のNSTimeIntervalと比べてホイールの回転速度を知りたいのです

一気にまわすと↓こうなるので出来るかなと
2005-06-08 13:08:19.276 time=397451.7
2005-06-08 13:08:19.308 time=397451.8
2005-06-08 13:08:19.318 time=397451.8
2005-06-08 13:08:19.333 time=397451.8
2005-06-08 13:08:19.808 time=397451.8
643名称未設定:2005/06/08(水) 18:28:29 ID:xXFoKkeS
theEvent が作られた(発生した)瞬間と、scrollWheel: が呼ばれた瞬間は
同じと考えて(ひょっとしてこの2つの時間差を計ろうとしてない?)、
一回前にscrollWheel: が呼ばれた時とdeltaYを比べるべきじゃないですかね?

試してないけど、大体こんな感じでどうでしょう?

- (void)scrollWheel:(NSEvent *)theEvent
{
static NSTimeIntervalbeforeTime=0.0;
static floatbeforeY=0.0;
NSTimeIntervalcurrentTime=[theEvent timestamp];
floatcurrentY=[theEvent deltaY];

NSLog(@"移動距離=%f 移動速度=%f", currentY-beforeY, (currentY-beforeY)/(currentTime-beforeTime));

beforeY = currentY;
beforeTime = currentTime;
}

全然違ってたらゴメン
644名称未設定:2005/06/08(水) 18:53:56 ID:YvSsftIJ
>>643
私も同じだと思ってたんですが、同じだと>>642のログにはならないと思うのですが間違ってるかな
2005-06-08 13:08:19.276 time=397451.7
|0.03秒でtimestampが0.1変わってる(=違うときに発生したイベント)
2005-06-08 13:08:19.308 time=397451.8
|0.5秒経ってるのにtimestampは変わってない(=同じときに発生したイベント)
2005-06-08 13:08:19.808 time=397451.8

それとずっと回してる訳ではないので、それだと久々に回した時の計算がおかしくなります
(まぁいざとなったらcurrentTime-beforeTimeが○以上だったら無視、とかすれば良いですが)

なんか混乱してきた
645名称未設定:2005/06/08(水) 19:18:09 ID:xXFoKkeS
いや、イベントが発生した瞬間と、scrollWheelが呼ばれた瞬間に差があろうがなかろうが、
スクロール処理を実装するのに、その差を出す必要はないんじゃないかってことですよ。

> それとずっと回してる訳ではないので、それだと久々に回した時の計算がおかしくなります
もちろん>>643の方法ではまずいパターンは多々あるけど(最初に呼ばれた時とか)、
基本的な方法としてはこれでいいんじゃないかと思ったんだけど。
646名称未設定:2005/06/08(水) 19:49:54 ID:YvSsftIJ
そういや現在の起動時間-timestampでやったら(thread作るならともかく)
一回一回処理の時間かかるから意味ないですね
timestampが同じならdeltaYを足してって変わったら処理、でも良いけど、
それならbeforeTime=timestampしといてtimestamp変わったらbeforeTime-timestampでも良いし
timestamp変わらなかったら…だけどNSTimerで保険かけるか
また混乱してきたorz

とりあえず>>643で久々のor最初の一回目は固定の処理をする、でやろうと思います
ありがとうございました。お手数かけてすいません>ID:xXFoKke
647名称未設定:2005/06/09(木) 01:29:08 ID:U5TAbsaY
Intel Macを考えるとCocoa-Javaがベストな選択?
ObjectiveCの場合、PPCとIntelの両方のプラットフォームを手に
入れないと動作確認できないのは辛いよね。
648名称未設定:2005/06/09(木) 02:51:34 ID:E+utKdeO
Cocoa-Java Bridge だって動作確認は必要じゃないの?
っていうか, Intel への移行で Java bridge の方がいいという意味が
わからんのですが...
649名称未設定:2005/06/09(木) 02:57:54 ID:Q2WBZcyv
Objective-Cで何の問題もないが。
妙なメモリアクセスさえしなけりゃね。
650名称未設定:2005/06/09(木) 03:08:17 ID:qcbU4Ibf
バイトオーダーに依存するような生々しい書き方せずに
Cocoaで書く分には問題ない、と思いたい。
651名称未設定:2005/06/09(木) 05:47:41 ID:he1qz8bR
自力でJava Bridgeをゴリゴリ作っている場合は、
ObjectiveCと同じように注意が必要だと思うけど
アッポ純正APIを使う分にはjavaの恩恵を受けら
れるんじゃないかな
652名称未設定:2005/06/09(木) 13:20:22 ID:nvpZ+wnX
え? なに? エンディアンが気になるって? (w
653名称未設定:2005/06/09(木) 17:39:44 ID:0Bp3zUBX
やっぱC言語(ObjCも含む)の場合はエンディアンが気になるでしょう。
sys/socket.hのソケットを使って、intを送信したらどうなるのかな?
654名称未設定:2005/06/09(木) 17:47:07 ID:shR02Ldd
そんなに気になるかな? エンディアンよりもアライメントの方が気になる。
エンディアンはOSUtilのBitSetとかBitClrなんか使ってるとこくらいかな。
あとバイナリーファイルか。
655名称未設定:2005/06/09(木) 18:55:16 ID:Q85Gthav
> sys/socket.hのソケットを使って、intを送信したらどうなるのかな?

ぽかーん
656名称未設定:2005/06/09(木) 19:00:26 ID:THp5slC2
つ man 3 byteorder
657名称未設定:2005/06/09(木) 19:22:23 ID:C5WQDABc
すみません、質問です
試しに適当な単語を入れて透明あぽーんを実行してたのですが
元に戻す方法がわかりません。。。(;_;)教えてください。
658名称未設定:2005/06/09(木) 21:44:57 ID:hP3440Vc
ぽかーん
659名称未設定:2005/06/09(木) 22:09:33 ID:srbMc904
アップルって、Cocoa-Java を見捨てていない?
660名称未設定:2005/06/09(木) 22:12:21 ID:ovNYdHZP
ヒレガスも「Cocoa-Java は糞」と言ってるしね。
661名称未設定:2005/06/09(木) 22:16:10 ID:d8CNzpEB
力は入れてないわな
使ってる人あんまいなそうだしな
662名称未設定:2005/06/09(木) 22:30:12 ID:vMM/PGut
CocoMonarはさっぱり!!!
663名称未設定:2005/06/09(木) 23:04:30 ID:srbMc904
WebObjectもVer6でObj-cに回帰しないかな。。。
664名称未設定:2005/06/10(金) 00:18:52 ID:XM3olyed
Cocoa-Javaってすっごく便利なんだけどね〜おしいな〜
まあ、ビジネス用途で開発する人は少ないと思うけど、
ビジネスロジックを書くならJavaが便利だもんね。
俺は、唯一のMacネイティブビジネスアプリ言語だと思っている
JDBCでPostgreやMySqlでデータベースアプリをガシガシ書けるし、
iReportで帳票も設計できるしね
665名称未設定:2005/06/10(金) 00:49:00 ID:CvMCcu8N
>ビジネスロジックを書くならJavaが便利だもんね。
なんで?
666名称未設定:2005/06/10(金) 01:55:35 ID:ze5TOz5O
ちょっとプログラミングをかじった奴に限って

「エンディアンが変わったら、全データを逆転しないと動かない」

とか平気で思ってんだよねw
667名称未設定:2005/06/10(金) 02:43:16 ID:zPqwgHYa
ぽかーん
668名称未設定:2005/06/10(金) 11:21:22 ID:SUl1gbCy
Safariで使われているタブを自作アプリで使いたいのですが、
あれって自前で書いて用意しないといけないのでしょうか。
669名称未設定:2005/06/10(金) 16:31:27 ID:imLJkf8H
最近マカエレからCocoMonarに乗り換えました
いくつかの疑問点があるので質問させて下さい

1、お気に入りのスレをファイル等を使い階層化できないのですか?
2、もしできないのであれば、お気に入り内のスレを整理したいのですが
  上下に入れ替える方法がわかりません、教えてもらえないでしょうか?
3、いわゆるタブブラウズのような機能は付いていないのでしょうか?
4、あぽーん機能で消したレスをスレに復帰さすには、レス番をクリックし
  一つ一つ迷惑レスのチェックを外していかなければいけないのでしょうか?
5、「掲示板リストの表示」から2chnnel.brdを読み込んだのですが
  なぜかラウンジが重複しているから読み込めないと言われました
  みなさんはどう、解決しましたか?

質問ばかりで恐縮ですが、ぜひご教示ください、よろしくお願いします。



670名称未設定:2005/06/10(金) 16:32:44 ID:Qa8OEdgw
>669
cocoちがい?
671名称未設定:2005/06/10(金) 19:30:22 ID:ZxO6iFrg
>>665
ガーベージコレクションがあるのでメモリの管理が楽だし
JDBCなどの周辺ライブラリが充実しているでしょ
まあそういってもCocoa&javaのメモリ管理はけっこう難しいが

>>666
ソケットを使っている人はやっぱエンディアンが気になるよ
PPC同士でintやlongをそのまま送信しているようなプログラムがあったとする
そのプログラムをPPC MacのサーバとINTEL Macのクライアントで使ったとする
やばそうな気がしない?
>656みたいにバイトオーダーを意識した作りになっていれば良いけど、
Macはビッグエンディアンだと思い込んで作られているソフトも多そうだよね。
672名称未設定:2005/06/10(金) 19:41:33 ID:imLJkf8H
>>669を書き込んだ者です
素で間違えました…申し訳ありません
別スレ行きます。
673名称未設定:2005/06/10(金) 19:55:45 ID:zPqwgHYa
> PPC同士でintやlongをそのまま送信しているようなプログラムがあったとする

そんな腐ったプログラムはさっさと捨てろ。
674名称未設定:2005/06/10(金) 20:34:13 ID:ZxO6iFrg
まあ、そうかも(*´・ω・)(・ω・`*)ネー
675名称未設定:2005/06/11(土) 01:33:01 ID:wi69vX6j
>>671
なんつーかな、ネットワークバイトオーダーって言葉すらあるわけで。
676名称未設定:2005/06/11(土) 05:42:04 ID:6lCJ7jaZ
ポカーン
677名称未設定:2005/06/11(土) 13:17:06 ID:Rko7qjp3
>>675
そうなんだよ(*´・ω・)(・ω・`*)ネー。
でもMacで開発する場合はプラットフォームが同じなので
そこまで意識して作っていないケースがありそう。
Javaアプリ(の規定値) と PPC Mac(の規定値)はそのまま通信できるしね

って実際は問題にならないかもしれないけど、複数のアーキテクチャで
テストしなきゃならないのは辛いよ(*´・ω・)(・ω・`*)ネー
678名称未設定:2005/06/11(土) 15:21:09 ID:Jx8KguBk
ネットワークにバイナリ垂れ流すような産廃業者のようなヤツはネットアプリ作るなよ。
679名称未設定:2005/06/11(土) 15:25:13 ID:5zW+Oyz3
ぽかーん
680名称未設定:2005/06/11(土) 15:37:50 ID:RqJ/aaH/
telnet pc7.2ch.net 80
....
GET mac/dat/1091927026.dat HTTP/1.1
Host: pc7.2ch.net
Connection: close
Accept-Encoding: gzip

406 Not Acceptable
Reason: "ネットワークにバイナリ垂れ流すような産廃業者のようなヤツはネットアプリ作るなよ。"

Connection close.
681名称未設定:2005/06/11(土) 16:15:14 ID:Jx8KguBk
>>680
バイナリを出す時は、きちんとゴミ袋に包んで中身が漏れないようにして出しましょう♪
682名称未設定:2005/06/11(土) 16:26:22 ID:rcIEd1tx
何だこの実のない
683名称未設定:2005/06/16(木) 15:23:18 ID:AeEJ4SAV
10.3.9と10.4.1で同じ画像ビューアを動作させたとき、
10.3.9の方が早いみたいなんだけどそんなことあり得る?
画面に描画するのはTigerの方が早いっぽいんだけど
[ image lockFocus ];
[ sourceImageRep drawInRect:NSMakeRect(0,0,width,height) ];
[ image unlockFocus ];
とかはどうもPantherの方が早い気がする
気のせい?
684名称未設定:2005/06/16(木) 21:47:50 ID:DAHCbBgz
NSTableViewでdeleteキーを押したら選択されている行を削除する、という動作を実現するためには
delegateかdataSourceで実装するべきメソッドがあるのでしょうか?
この程度のことでサブクラス化なんてするはずないだろうし・・・
685名称未設定:2005/06/16(木) 22:00:43 ID:AeEJ4SAV
漏れは
[tableView selectedRow];
で列を出してdataSourceの該当行を消して
[tableView reloadData];
した気がする
686名称未設定:2005/06/16(木) 22:20:59 ID:MgWekGvj
そうじゃなくて、delegateやdatasourceにそれ用のメソッドが用意されてるのかって話。
結論としては、ないだろうけど。
687名称未設定:2005/06/16(木) 22:36:15 ID:PoSlz3Gl
最初は大変でもサブクラスに作っておけば使いまわしが聞くから、後々楽になると思うよ
コントローラとかに書いちゃうと後で必要になったときにいちいち探し出してコピペしなくちゃいけないから
結構面倒だったりする
後からサブクラス化するのも時間を損した気分になるしね
688名称未設定:2005/06/16(木) 22:39:03 ID:AeEJ4SAV
そこらへんはリファレンス見ればわかるしょ?
689名称未設定:2005/06/16(木) 23:10:32 ID:9yRuhygO
>>684
Responderの仕組みを理解していれば答えは自力で導けるはず。
NSResponderとかについて調べてみよう。
690名称未設定:2005/06/17(金) 01:01:36 ID:n5sUrjrt
NSTextFieldのcopyやpasteに割り込むにはどうしたらいいんでしょう?
余裕かと思ってたんですが、やってみたらappのdelegateやviewのdelegateでもダメ。
サブクラスでオーバーライドしても無反応でした。
691名称未設定:2005/06/17(金) 02:00:40 ID:HV9R48fR
>>690
俺もEditableがNOの場合にペーストできるようにしたかったけど分かんなかった。
692名称未設定:2005/06/17(金) 02:12:42 ID:n5sUrjrt
EditableがNOだったらそもそもファーストレスポンダーが乗らないから
ペーストできるわけないがな(´・ω・`)

テキスト編集中はフィールドエディタにFRがあるからそっちから割り込まないと駄目なんでしょうか?
693名称未設定:2005/06/17(金) 03:56:28 ID:n5sUrjrt
ごめんなさい。EditableがNOでもファーストレスポンダーはくるし選択も出来るね。
694691:2005/06/17(金) 12:15:18 ID:vxuMVT9L
俺もちょっと違かった。

NSTextFieldにフォーカスがきている時でも、FirstResponderになっているのは
中で持ってる(であろう)NSTextViewみたいなんだよね。
([NSWindow firstResponder]がNSTextViewを返している)
このNSTextViewをサブクラス化したものに置き換えられればいいんだろうけど、
その方法が見つからなかった。

じゃあサブクラス化したNSTextViewをそのまま使えばいいや、と思ったんだけど、
NSTextViewもEditableをNOにするとオーバーライドしたpaste:に来なくなる。

俺もNSResponderの理解が不十分みいたいなんだけど、そもそも「ペースト」
を有効にする/しないはどう判定してるんでしょう?
695名称未設定:2005/06/17(金) 18:24:01 ID:VD5ULbBx
>>694
fieldEditor を置き換えるには、NSWindow の delegate で
- (id)windowWillReturnFieldEditor:(NSWindow *)sender toObject:(id)anObject
を実装し、anObject が目当ての NSTextField だったら自前の NSTextView
(のサブクラス)を返せば良いみたい。
nil を返せば通常の fieldEditor が使われる模様。
696694:2005/06/18(土) 00:17:40 ID:QVZckyOm
「ペースト」MenuItemを有効にするには、
- (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem
でYESを返せばいいのね。
NSTextFieldならこれとpasteの実装でOKだった。

NSTextFieldの場合はそれに加えて >>695 をやれば良さそうですね。Thx!
697名称未設定:2005/06/18(土) 23:36:32 ID:lNERbd1C
>>633
> ClassicもCarbonも、もう要らんでしょ。

まだこういう人っていたんだ?
Classicはともかく、Carbonなくなったら大抵のソフトは動かないよ
CarbonはMac OS 9からの移行用APIではない
698名称未設定:2005/06/18(土) 23:47:09 ID:wDCPaQ5j
ところでFinderって完全にCocoaになったんだっけ?それともまだ?
699名称未設定:2005/06/19(日) 02:41:05 ID:g2VpStDc
Info.plist見るとNSPrincipalClassがないね
700名称未設定:2005/06/19(日) 09:49:16 ID:cHrfvbSm
>>697
>Carbonなくなったら大抵のソフトは動かないよ
今はそーでもないよ
701名称未設定:2005/06/19(日) 10:18:53 ID:3GtQkCPR
互換部分のCarbonと基幹部分のCarbonをごっちゃにして語る奴がいるけど、無意味
702名称未設定:2005/06/19(日) 10:25:36 ID:HWNTSri6
Carbonは冗長でイヤだな。
703名称未設定:2005/06/19(日) 11:51:58 ID:VQrQF4SA
CarbonとCoreFoundationの区別について
704名称未設定:2005/06/19(日) 15:47:53 ID:0w1POvEn
>>699 から多分Finderもそうなんだろうけど、NSApplication使ってない、
WaitNextEventやRunApplicationEventLoop使ってるアプリはまだ結構あるでしょ。
OS 9の頃からあるアプリはほとんどそうなんじゃない?
705名称未設定:2005/06/19(日) 21:38:09 ID:Q2O5VDOF
>>700
AppleEventやATSUIやらが無くて動くソフトはどれですか?
日本語入力はどうやって動いてるの?
>>704
どれもCFRunLoopにhookしてイベント処理してるだけだから、表面仕上げが
多少違うだけで実質同じ物
Appleの人間はこう言ってます。
http://lists.apple.com/archives/carbon-dev/2005/May/msg01121.html
706名称未設定:2005/06/19(日) 21:55:14 ID:4WTupJu+
よくわからんがCarbonは無くならないという結論でいいのかな
そんなに刺々しいレスをしないでくれ
707名称未設定:2005/06/24(金) 22:40:08 ID:i2pwDBDb
NS保守
708名称未設定:2005/06/25(土) 00:56:39 ID:+Y96h/+D
[thisThread retain];
709名称未設定:2005/06/25(土) 01:41:01 ID:7cYAvp8h
while(1)
{
 [thisThread addRes:[NS2chRes resWithString:@"Nullpo"]];
}
710名称未設定:2005/06/26(日) 03:45:45 ID:DKrCBWgL
- (void)awakeFromNib
{
clocktimer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(thega:) userInfo:nil repeats:YES];
}

- (void)thega:(NSTimer *)atimer
{
[NS2chRes resWithString@">>709¥ngaxtu¥n"];
}
711名称未設定:2005/06/26(日) 03:57:49 ID:PnY2KwNa
on mouseUp
put "ガッ"
end mouseUp
712名称未設定:2005/06/26(日) 04:02:32 ID:PnY2KwNa
10 R=INT(RND(0)*2)
20 IF R=0 THEN PRINT"ぬるぽ":GOTO 10
30 IF R=1 THEN PRINT"ガッ":GOTO 10
40 PRINT"あぼーん"
50 PLAY"T120L8O2C"
60 GOTO 10
713名称未設定:2005/06/26(日) 13:05:34 ID:15aNwBjp
妙な流れを打ち切ってすみませんが質問です。
NSControlに複数のサイズの異なるセルを張り付けたいのですが、
この用途だとNSMatrixが使えませんよね。

NSControlのサブクラスで +(Class) cellClassを呼んでセルを指定すると
1つのセルがコントロール全体に張り付けられてしまいます。

複数のセルを張り付けるにはどのメソッドで指定あるいはメソッドを上書きすればよいのでしょうか。
714名称未設定:2005/06/26(日) 16:27:01 ID:Pf+FXJWq
素直に複数のcontrolを使うべきかと。
715名称未設定:2005/06/30(木) 21:13:43 ID:ZcUpSpTh
iSightなどのウエブカムの映像を表示するにはどうしたらいいんでしょうか。
やっぱ、QuickTimeですかね。
716名称未設定:2005/06/30(木) 22:18:13 ID:u29+tM3D
>>715
たぶんSequenceGrabberあたり
717名称未設定:2005/07/01(金) 16:12:53 ID:NSLqrMJ4
NSWidth()ってあるけど、aRect.size.widthのようにアクセスするのとどう違いますか。
わざわざ用意してあるということは関数を使うほうがAppleの推奨ということなんでしょうか。
718名称未設定:2005/07/01(金) 16:25:22 ID:cyXWOZq1
同じ
推奨かどうかは知らん
719715:2005/07/01(金) 18:18:20 ID:dlHkQBF+
>>716
いろいろ調べてみたけど、さっぱりでした
そんなに簡単じゃないんですね。
720名称未設定:2005/07/02(土) 12:54:34 ID:819uAjmQ
>>717
NSGeometry.h
FOUNDATION_STATIC_INLINE float NSWidth(NSRect aRect) {
return (aRect.size.width);
}
721名称未設定:2005/07/02(土) 12:57:08 ID:819uAjmQ
補足
構造体のメンバ名がwideとか変わった場合(あり得ないけど)
関数経由でアクセスしておけば書き直す必要がない
まあこんな単純なものは気にする必要ないだろうけど
722名称未設定:2005/07/02(土) 14:19:45 ID:SY1+gf3w
>>715
ttp://www.mindsprockets.com/developer.html
iSightでいいなら(1394接続向けっぽい)、ここのiRecordが参考になるかも。
723 :2005/07/02(土) 14:22:28 ID:rIs1fFu9
>>717
関数のメリット→>>721のいうとおり、あとタイプ数が少ない

関数のデメリット→変数に直接アクセスするよりは時間がかかる
(ループの中でそれこそ山のように繰り返すようなことでもしなければ、体感では分からない程度だろうが)
724名称未設定:2005/07/02(土) 14:46:49 ID:OckeRv9x
>>723
>関数のデメリット→変数に直接アクセスするよりは時間がかかる

インライン関数ですが?
725名称未設定:2005/07/02(土) 18:04:54 ID:KH7dWUvg
このスレはCococa-Javaの質問を投下しても
いいのでしょうか?
726名称未設定:2005/07/02(土) 18:32:15 ID:f508yev0
もちろん
727名称未設定:2005/07/02(土) 20:07:59 ID:KH7dWUvg
>>726
ありがとうございます。

早速ですが
NSImageView をwindow に複数個設置し
ユーザーがそのうちの1つを選択した時、
選択されたNSImageView の情報を取得する
メソッドはあるでしょうか?

初心者なので質問の仕方もよく分かりませんが
よろしくお願いします。
728名称未設定:2005/07/02(土) 20:19:22 ID:Lz7MvM7e
なかったらサムネイル作るとき便利悪いんじゃね?
729名称未設定:2005/07/04(月) 15:42:43 ID:2d8Tyv9O
>>721
もう一つメリットがあるぞ。
いちいち構造体の内部を憶えておかなくていい。
730名称未設定:2005/07/05(火) 22:58:49 ID:yDgkwwoJ
メタデータインポータを作成中・・・

でも、アップルの資料の通りGetMetadataForFileのなかでNSDictionary*とか使ったら
コンパイルエラーに。error :'NSDictionary' undeclared.

仕方ないから勝手にFondationフレームワークを追加して#include <Foundation/Foundation.h>
を入れたらこのエラーは出なくなったけど、こんどはリンカの段階で
Undefined symbols: _GetMetadataForFile
とかでるようになった。どうすりゃいいの?  orz
731名称未設定:2005/07/06(水) 00:13:12 ID:AhsYu3ZC
リンクすべきフレームワークが抜けてるんじゃないの?
732名称未設定:2005/07/06(水) 23:55:16 ID:or/BrvdA
拡張子は .m になってる?
733730:2005/07/07(木) 00:11:13 ID:QtDC3cX0
>>732
お、すごい。.cを.mに変えたら一発で通っちゃった。
なんで気がつかなかったんだ!
ありがとう。助かったyo!
734名称未設定:2005/07/09(土) 11:54:57 ID:VNovAsMv
ADCのメーリングリストを見ていたら、Cocoa-Javaの
JavaBridgeは、MacOSX 10.4までしか提供しないよう
な事が書いてあった(英語力はありませんが)んだけど
これが本当ならモチベーション下がるなぁ。
かなりJavaのライブラリに依存した形で作ったので、
Objcへの移行も大変すぎるし・・・はぁ。
735名称未設定:2005/07/09(土) 12:06:59 ID:VNovAsMv
そういえば、
Java-Swingに移行した方が楽だけど、
日本語関係のトラブルがなぁ・・・はぁ。
736名称未設定:2005/07/09(土) 18:15:20 ID:VNovAsMv
Important: Features added to Cocoa in Mac OS X versions later
than 10.4 will not be added to the Cocoa-Java programming
interface. Therefore, you should develop Cocoa applications
using Objective-C to take advantage of existing and upcoming
Cocoa features.
・・・はぁ。
Cocoa-JavaってIntel移行に有効だと思うんだけどおしいなぁ。
Macの開発者離れが心配だ。
737名称未設定:2005/07/09(土) 19:58:02 ID:E1c87c/G
>>736
え、心配するほどCocoa-Javaやってる人いるの?
738名称未設定:2005/07/09(土) 20:29:59 ID:qPdjmoYw
>>736
「10.5以降でCocoaに追加される機能はCocoa-Javaには提供されない」
ってことで、Cocoa-Java自体が無くなるわけじゃないみたいね。
とりあえずのところは。

Javaの言語仕様と相容れないからなのか、
現状でもObjective-Cで使えるCocoaの重要な機能いくつか使えないしね。
まあしょうがないんじゃない。
739736:2005/07/09(土) 22:13:56 ID:VNovAsMv
>>737
Web上で検索すると結構いそうな感じだよ。
取っ付き易いので、Java開発者の人口を考えると
侮れないと思う。

>>738
互換性を考えると10.2や10.3の機能しか使えないかも知れなけど
未来が無いと思うとがっかりするよ。
740名称未設定:2005/07/10(日) 00:56:58 ID:GVmBZs/e
Javaの人は動作速度向上を期待してJava+Swingでがんがったほうがよさそうですね。
741736:2005/07/10(日) 08:11:51 ID:kxVvCvOM
>>740
Java+Swingでも動作速度については、あまり問題にならないと思われるけど、
jvmのバージョンアップで動作がころころ変わるのが問題なんだ。
Cocoaなら最低限の互換性は保てるからね。
その点、Cocoa-Javaで組めば10.5以上でもそのまま動作するなら
逆に嬉しい事なのかもしれない。
742名称未設定:2005/07/10(日) 16:34:47 ID:RdgvDq0f
Cocoa+JavaってJavaの売りを捨ててまで使うようなもの?
単純に敷居を下げてるだけだと思ってたけど
743名称未設定:2005/07/12(火) 20:50:17 ID:RZMLWeWQ
MSのC#やJ#のような位置付けだと思っていたけど
Appleの体力が持たないんだろうね
逆にJavaBridge部分がオープンソースになればもっと進化するかも
744名称未設定:2005/07/13(水) 09:41:35 ID:I3EzBleC
C#,J#は怪しいパチモノマネ商品ガンガル。
Cocoa-Javaは宗教上の理由 な ど で、どうしてもObjective-Cをつかえない人向け。
745名称未設定:2005/07/13(水) 10:41:34 ID:LoHjvrYV
Javaで間口を広げようとしただけで、もう役目は終わってお払い箱って
とこかな。Cocoa-Javaで書かれたソフトって見たことないけど、何か
あんの? Apple製以外で?
746名称未設定:2005/07/13(水) 17:19:17 ID:E9UMuPut
>>744
C# はそんなにわるくない
747名称未設定:2005/07/13(水) 23:00:57 ID:sjeCZb0t
Cocoa-Javaってのは、
既に作られたJava製の何かのソフトの核を利用して
Cocoaのガワをつけるためにあるんでないのかい?
おまいら自分の日曜プログラムの範囲だけで考えてない?
748名称未設定:2005/07/13(水) 23:05:29 ID:Pxke0nYc
だって日曜プログラマだし。
749名称未設定:2005/07/14(木) 00:06:15 ID:D3OtjT+w
Cocoa-Javaは、Java用のライブラリが使えるのが美味しい。
JDK1.4に付属の物だけでも、宝の山。

ディスコンにするなら、Objective-Cのライブラリが増える事に期待。
せめて正規表現関係は欲しい。
欲を言うと、JDK1.5のような並列ライブラリも欲しい。
750名称未設定:2005/07/14(木) 09:53:38 ID:ZXafrmZW
正規表現なら鬼車使えばいいんでないかい? BSDライセンスだから
商用でも使えるし。
751名称未設定:2005/07/14(木) 13:14:25 ID:dvt1bI3T
人から渡されたソースコードがみずらいときの為の
Objective-C用のソースコード整形ツールなどはありませんか?
ググッてもなかなか見つかりません。
Win用でもかまいません。
752名称未設定:2005/07/14(木) 13:23:14 ID:9bprzZfS
emacs で Objective-C モードで読み込んで C-M-\ だとどうでしょう


753751:2005/07/14(木) 13:54:05 ID:dvt1bI3T
>>752

お返事ありがとうございます。
いい忘れましたがソースファイルは膨大な量があります。
Xcodeで一つづつならインデントなどできますが、括弧のフォーマットなどは出来なかったです。
なので、できれば一括して処理できるものを探しています。
754752:2005/07/14(木) 15:17:33 ID:sBgITEI1
emacs でもたくさんのファイルをいっぺんにできそうですが、やり方はすぐわかりません。
indent コマンドでやってみましたが Objective-C だとあまりよくないですね。
755名称未設定:2005/07/14(木) 17:32:29 ID:B2RLx1RO
前にperlで整形用スクリプト書いたけど
複数行にまたがる処理ができなくてカッコで挫折した
756名称未設定:2005/07/14(木) 19:00:55 ID:oOLa8rbw BE:419654988-#
>>753
Xcode ですべて選択して 「再インデント」 では?
757名称未設定:2005/07/14(木) 20:40:35 ID:t7pm9sgq
>> 749
おれは、階層がフラットで美しいCocoaライブラリを見た後、
Javaのようなごちゃごちゃしたものライブラリは使う気が起
こらなった。それに、Cocoaのライブラリは、少ない学習期
間でさくさく使えるし。
758名称未設定:2005/07/14(木) 22:05:33 ID:uDjQ5QzU
>>757
業務アプリなどを組む時にはやっぱJavaでしょう。
SwingだとGUIがいまいちなのでCocoaはいいよ。
帳票もiReport等を使えば楽だし、Oracle等の
データベースアプリもちょちょいのちょいだし。
759名称未設定:2005/07/14(木) 22:50:44 ID:t7pm9sgq
>> 758
たしかに業務用ライブラリは少ないが、Cocoaの場合、QTKitや
Core Imageのようなマルチメディアライブラリの出来はいいと
思う。Javaの場合、JMF、JavaSoundは廃れたし、JAIは多少使わ
れているようだが。。。
760名称未設定:2005/07/15(金) 00:31:40 ID:kbcd4inV
>>754
整形コマンドは俺も欲しい
indentの設定ファイルだけでもいいかどこかで手に入りませんか?
761名称未設定:2005/07/15(金) 04:45:10 ID:0AzYohWi
[hoge hoge];//hogeです

って書くと
そのあとインデントtab一個ずれるよな.
762752:2005/07/15(金) 11:27:47 ID:ndUitMQh
>>760
indet コマンドは入ってませんか?
Objective-C だとあまりうまくいきませんけどね。
763名称未設定:2005/07/16(土) 11:24:57 ID:YyiUMh8Y
>> 762
やっぱり、macに入ってるindentもObjC対応でないんですか。
EmacsのObjCモードくらいしか整形ツールは無いんですね。
メンドクサイ。
764名称未設定:2005/07/16(土) 14:50:50 ID:vK1Oa8X9
何でないなら自分で作ろうとしない?
765名称未設定:2005/07/16(土) 14:55:43 ID:9g6eTQJ3
面倒をほかに押し付けるためのツールやライブラリなのに
なんで自分で面倒をしょいこまにゃならんのだ
無くて致命的に困るわけじゃない
使えるツールが出てくるまで愚痴こぼしながら我慢するんさ
766751:2005/07/16(土) 14:59:10 ID:lMQ5Tezo
みなさん、お返事ありがとうございました。
結論からしてObjective-C用の一括整形ツールは存在しないとのこと。
ないものはいくら頑張っても仕方ないのであきらめます。
767名称未設定:2005/07/16(土) 15:52:33 ID:SOd69Oj/
整形はSCMのファイルが肥大化するので使ってないけど

% emacs -batch -l indent-mode -f objc-indent-function -f example.m
程度で我慢してみてはいかがでせう。
768名称未設定:2005/07/16(土) 18:09:19 ID:Kg+tcUdP
>>755
カッコ開始にあたったら「今カッコの中」というフラグを立てる。
フラグが立ってる間はカッコの中用の処理をさせる。
閉じカッコにあたったらフラグ下ろす。
769名称未設定:2005/07/16(土) 18:17:30 ID:fcGjWFhM
俺のセレクタの書法

@selector( hoge: foo: bar: baz: )

これって少数派?
770582:2005/07/16(土) 20:24:43 ID:l8MKE0ug
これのObjective-C版が欲しいかな
GNU GLOBAL
ttp://www.tamacom.com/global-j.html
771名称未設定:2005/07/16(土) 23:10:29 ID:YyiUMh8Y
CodeWarriorでは、定義された関数とかクラスはカラーリングされてたけど、
Xcodeでは出来ないの?
予約語とかは出来るし、option+clickで飛べるのに...
誰かやり方教えてよ。
772名称未設定:2005/07/17(日) 03:20:59 ID:7ri4mCMq
それができればなあ
773名称未設定:2005/07/18(月) 19:28:26 ID:vSP04eaR
EclipseにObjectiveCのプラグインができれば使うんだけどなぁ
XcodeとInterfaceBuilderの連携は他人のプログラムが読み難い
のでいまいち好きになれない
Xcodeってチーム開発の事を考えて作ってあるのかな?
774名称未設定:2005/07/18(月) 20:34:19 ID:iftCVtRW
チーム開発なら読むのは他人のプログラムのソースコードじゃなくて
そのプログラムの仕様書だから
別にいいんでないの?
775名称未設定:2005/07/18(月) 20:48:46 ID:oh7O52eK
クロスレビューしない?
776名称未設定:2005/07/18(月) 21:01:03 ID:4bzFWK5v
UIに関する動作を変えようと思ったとき、Xcodeだけじゃなくて
nibまで変更しなきゃならん事があり、そのたびに
Interface Builderでnibを変更して、なおかつ各国語版のnibまで
更新しなきゃならん。

最悪。
777名称未設定:2005/07/18(月) 22:23:51 ID:ZTXFrBnS
AppleGlot使え
778名称未設定:2005/07/18(月) 22:51:33 ID:qoXWczdj
iLocalize、PowerGlotなんかもある。
779名称未設定:2005/07/19(火) 00:29:36 ID:yv88O0m/
特に iLocalize は多言語編集と使いやすさと分かりやすさで一番お勧め。
文字を更新した後でnibを編集してレイアウトを調整するだけ。
780名称未設定:2005/07/21(木) 16:47:30 ID:NZkq8kmt
NSOpenPanelで不可視の項目を表示する方法はないのでしょうか?
781名称未設定:2005/07/21(木) 19:36:02 ID:Cge2caP0
>>780
setShowsHiddenFiles:
782名称未設定:2005/07/21(木) 20:08:38 ID:NZkq8kmt
>>781  おおー!確かに出来ました。ありがとうございました。

でもなぜヘッダにもリファレンスにも載ってないんでしょう?
AppleScript(choose fileとか)でもCarbon(Navigation Services)でもある機能なので
非公開にする理由もないように思えますが。
783名称未設定:2005/07/24(日) 16:50:30 ID:NDerUU+w
Cocoa+Objective-Cで
Dockにあるアプリケーションのアイコンをバウンドさせたいのですが
それらしい機能がAPIリファレンスをみてもそれらしき物が見つかりません。
どなたかご存知のかたいませんか?
784名称未設定:2005/07/25(月) 00:35:43 ID:H6/29vPl
>>783
NSApplication requestUserAttention:
785(・∀・):2005/07/25(月) 00:37:45 ID:sIAGmmIB
Cocoaはやっぱりって本をみると、
NSApplicationクラス?で、
requestUserAttention:(NSRequestUserAttentionType) reqType
ってのがあるようです。
786名称未設定:2005/07/25(月) 23:03:45 ID:wy6lTW4n
>>784-785
できkました。かんしゃです!
787名称未設定:2005/07/25(月) 23:13:14 ID:k01PnPiu
荻原本が絶版で買えない(つД`)
他に初心者向きの良いObjective-C本やサイトってありますか?
788名称未設定:2005/07/26(火) 03:05:20 ID:wgQR2SzM
HMDTはどうよ?

ヒレガス本は初心者にはお勧めできない。
つか自分もまだ全部は読んでない・・・
789名称未設定:2005/07/26(火) 08:10:57 ID:rVETzjPB
WebKit SDKって今から入手できないかな?
xcodeに移行しろよって言われればそれまでなんだけど、
完成までは開発環境を変えたくないのです。
790名称未設定:2005/07/26(火) 21:10:42 ID:WMk5Prir
>>788
HMDTは持ってます。てか最初に買いました。
プログラム自体が素人なので他に柴田望洋明解C言語なども。
あと、
http://developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/index.html
とかも暇みて読んでます。読むだけだったら猿にも出来るし(ノД`)
さらにヒレガス本昨日注文しました(ノД`)
頑張るべ・・・
791名称未設定:2005/07/27(水) 00:12:01 ID:4usubLBL
NSTaskについて質問です。
UNIXのコンソールアプリに、CocoaのGUIをかぶせたものを作りたいです。

NSTaskでコンソールアプリを起動させます。
NSTaskDidTerminateNotificationのセレクタを登録しておき
アプリケーションの終了時にapplicationWillTerminate:メソッド内で
コンソールアプリに終了通知コマンドを送りNSTerminateLaterを返します。
そしてNSTaskDidTerminateNotificationを待ってから
[NSApp replyToApplicationShouldTerminate: YES]で終了させたいと考えています。

しかし妙な事にNSTaskDidTerminateNotificationはアップルメニューをクリックして、
メニューのハイライトを離してからでないとどうしても通知されないのです!
どなたか解決策をご存知の方ご教授宜しくお願いします。
792名称未設定:2005/07/27(水) 09:02:14 ID:LkmEEXTf
NSToolbarItemのサイズを可変(ウインドウのサイズに合わせてサイズが変わる)にするにはどうすればいいですか?
793名称未設定:2005/07/27(水) 09:16:28 ID:3r5swYNP
>>788
初心者にこそヒレガス本だろ。Cocoaのプログラミングスタイルを学べる
唯一と言っていい本だし、つまづく要素はどこにもない。あれでつまづく
ようなら見込みはないと思った方がいい。

ただ、HMDTもそうだが最低限ANSI Cは知っていなければならない。
794名称未設定:2005/07/27(水) 09:35:53 ID:hvMTIN31
そのANSI Cを知ってないといけないというのがなあ。。
一応独習Cとか買ってかじった事もあったけど
やっぱりGUI付きの具体的なものとか、
テキスト処理とかの目に見えて自分に利益があるものがすぐには作れないせいで
なかなか学習が進まず・・・。
ポインターもよく理解しないまま途中で放り出してしまったですよ。
795名称未設定:2005/07/27(水) 10:36:56 ID:3r5swYNP
ANSI Cは英語で言えばアルファベットのようなもの。これを通過しないと
C++にもObjective-Cに進めないからね。

最初からGUIよりもやはり最低限標準ライブラリくらいは一通りやって
おいた方がいいよ。実習みたいな本で練習して慣れるのが一番の早道。
C++の標準テンプレートライブラリに比べればずっと楽だよ。

ポインタはアセンブラをやってれば理解が早いんだけど、今時アセンブラ
の本なんてほとんどないし、使うこともないからね。ポインタはアドレス
と格納されるデータの関係を掴めば理解できる。これも慣れで突破するしか
ない。
796名称未設定:2005/07/27(水) 11:26:08 ID:JXSdsqJ/
>>792
maxSizeとminSizeを指定してやれば良いんじゃないの?
797名称未設定:2005/07/27(水) 13:17:53 ID:hvMTIN31
>>795
『標準ライブラリ一通り』はどうすれば学習できますか?
ヘッダを読む?とかいうのも、読み方自体がわからないし・・・。
798名称未設定:2005/07/27(水) 13:34:19 ID:3r5swYNP
>>797
大抵の実習本なら標準ライブラリは使うはずなのでそういう本で
慣れることが一番いいと思う。全部を憶える必要はない。
Cocoaで使うことはそれほどないけど、やっていると役に立つ
こともある。俺はファイル関係等で結構使ってるけどね。

大昔のパソコンサンデーじゃないけど、習うより慣れろ。
799名称未設定:2005/07/27(水) 15:09:39 ID:hvMTIN31
標準ライブラリって、studio.hとかあんなんですか?(もうそのへんの記憶もない)
当時わざわざCodeWarrior買ってやってたんですが、
入門書そのままの記述だとだめだったりした覚えが。

ああ、無駄金かなり貢いでしまった。
orz
800名称未設定:2005/07/27(水) 15:22:50 ID:wJKstNHe
変に根元を押さえようとするより、手を動かして慣れた方が身に付くものは多いと思。
得てして上級者は基本が重要だと言い張るのだが、
基本を完全に身につけてから実践に入る奴なんてどこ探したっていない。
801名称未設定:2005/07/27(水) 15:37:23 ID:3r5swYNP
>>799
まぁ、昔のClassic MacOSにはコンソールがなかったからな。
CodeWarriorだとSIOUXなんて変なライブラリ使わなきゃならなかったが
標準入出力モドキがついてたTHINK C/Symantec C++よりは劣ってたな。
MPWならそのまま動いたと思うけど。標準入出力関連は入門書のままじゃ無理。

ただ、MacOS Xではそのまま動くはずだよ。
802名称未設定:2005/07/27(水) 15:45:45 ID:AB5m2NXy
learn Cで2週間だった。4.2BSD。
803名称未設定:2005/07/27(水) 16:49:38 ID:wXNNSlzR
Cをやり始める人へ。
モジモジ処理があんな面倒だろ。でも実際はもっといいものがあるので安心しろ。
804名称未設定:2005/07/27(水) 17:26:19 ID:GSdaf/f9
>>788
HMDTは初心者にはお勧めできない。
本に書いてある通りに作っても
コードが掻い摘んで書いてあるから動かない。
初心者は混乱するだけだと思う。
805名称未設定:2005/07/27(水) 19:04:12 ID:Q2QyFngI
Cocoaだけやるなら
ANSI Cなんてサラッとでいいよ。

ポインタは
インスタンス変数を宣言する時は*hoge
メソッドがポインタ要求してたら&hoge
まー、こんな理解で必要十分だとおもーよ。

今時、Hello,Worldなんかやってても面白くないし。
806名称未設定:2005/07/27(水) 20:21:08 ID:AB5m2NXy
struct使うとendian問題あるし。
807名称未設定:2005/07/28(木) 00:04:39 ID:SbUgNemi
>>793
>最低限ANSI Cは知っていなければならない。

つまり初心者にはお勧めできないってことだろ・・・
808787:2005/07/28(木) 00:35:18 ID:NeSsoNUE
>>804
確かにHMDT読んで、CPUモニタ作ってみた時、初心者の自分ですら
なんか足りなくね?とか思ったわけで。
本にサポート用の全チャプタのソース置いてあるURLが書いてあるので
落として見れば全部解決なんだけど・・・。
IBを使う部分にしても初心者にはキツい省略してたりするし。
あまり一冊だけに期待するのも酷だとは思ってますが。

明日はヒレガス本来るかな。
809名称未設定:2005/07/28(木) 00:48:28 ID:Nw1HmD9Z
>>808
HMDTはいい本だとは思わないけど、その評価はちょっと酷な気もする。
初心者向けの本ってあまり実用性のないサンプルで学ぶ形式だし、
Cocoa全般を網羅してるわけじゃないからね。ヒレガス本と言えども。

荻原本は廃刊というより出版社がなくなったみたいだね。1年くらい前かな。
Objective-Cはアップルのサイトに日本語のドキュメントがあるので
それを読めばいい。普通にCocoaを使う分には全部読む必要はないが。
810名称未設定:2005/07/28(木) 01:02:08 ID:ow8PoBwS
CocoaのAPIの使い方に難儀しています。
NSToolbarでSafariの機能拡張のように現在選択されているツールバーがハイライトされる設定と
通常のツールバーのようにクリックしてもハイライトされないようにする設定はどこにあるのでしょうか?
811名称未設定:2005/07/28(木) 01:31:49 ID:ZGG1qoe3
HMDT本は最後にでも良いからコード全部書いてあったら初心者向けにはなかなか良い本だったと思う。
一部しか書いてないんじゃ、自分で打っても動かないから「へー」て言うしか無いし、
落としちゃったら見て「へー」て言うしか無いし。
やっぱり自分で(わからないながらも)全部打った方が、
試行錯誤してやっと動いた時に実感とか達成感がわくし、覚えられる。
まぁHMDT本読んで細々とだけどフリーウェア作れるようになったから文句言うのはあれだけど。
あとCは知らんくてもどうにかなるかと。本当に基本的なとことポインタだけネットで調べれば。
バチスカ女子校生も良く知らんみたいだし、俺も知らんかったけどなんとかできてるし。
趣味じゃなくて本気でやるなら勉強するべきだろうけどそういう人はとっくに知ってるような。
個人的にはリファレンス本が欲しいなぁ。それぞれにちょっとしたサンプルコード付きの。
というかttp://www.oomori.com/cocoafw/index.htmlをもうちょっと丁寧にした感じの
812名称未設定:2005/07/28(木) 01:59:39 ID:W6AjEHj3
813名称未設定:2005/07/28(木) 02:04:20 ID:ow8PoBwS
>>812様感謝
なるほどデリゲートメソッドの実装のところで
toolbarSelectableItemIdentifiersを実装しなきゃ行けなかったんですね。どうもお騒がせしました。
814名称未設定:2005/07/28(木) 15:08:43 ID:Tse4lqha
>>811
漏れはかなりoomori.comに助けられてるんだが・・・
ちみもまずは「大盛り」さんに感謝すべきじゃないか?
815名称未設定:2005/07/28(木) 19:51:07 ID:TASJ5I1k
萩原本の復刊リクエストを出しました。
興味があったら是非投票してくださいな。
http://www.fukkan.com/vote.php3?no=29943

書名が微妙に間違ってるのは、修正依頼を出したので修正されるはず。
816名称未設定:2005/07/28(木) 23:34:23 ID:ZGG1qoe3
>>814
俺も助けられてるし感謝はしてるよ。
助けられてるからこそurl知ってて出したんだし。
ただもうちょっとサンプルコードや説明が具体的だったらなぁって思うから、
そういう本が欲しいなって言っただけだよ。
817名称未設定:2005/07/29(金) 11:06:01 ID:M23of279
そうだね。無料で利用させてくれるとこに今以上を期待するのも図々しいし、
本が出たらうれしいよね。
818名称未設定:2005/07/29(金) 11:25:37 ID:qfOEZnWy
あそこはフィードバックできるようになってるから、
自分がわかるものに関しては積極的にサンプルコードを投稿したら?
819名称未設定:2005/07/29(金) 21:33:30 ID:t3GGmpvT
CocoaっつーかXcodeの質問なんですけど・・・

Document-basedアプリケーションをビルドして実行しようとすると
アプリケーションが起動せずにXcodeの中にドキュメントウインドウが開くんですが、
これは何ででしょうか?

いままではこんなことなかったのですが・・・
820名称未設定:2005/07/29(金) 22:34:51 ID:UnEUk3DA
>>819
その画面キャプチャしてupしてみせろ
821名称未設定:2005/07/29(金) 23:08:56 ID:t3GGmpvT
すみません、キャプチャしようと思ってXcodeを再起動させたら治りました。
どうもすみませんでした。
822名称未設定:2005/07/30(土) 01:24:17 ID:+1S+VDV2
バグったら
 なにはなくとも
  再起動
823名称未設定:2005/07/30(土) 01:48:10 ID:rwHYafP/
付属のサンプルコードの「CircleView」で、
startAnimation:の中で最初にstopAnimation:を呼んでるのはなぜですか?
824名称未設定:2005/07/30(土) 01:52:16 ID:IBU7ym7V
処理が二重に始まったら困るからじゃないのか。
普通に考えて。
825名称未設定:2005/07/30(土) 01:58:03 ID:rwHYafP/
現在回っているのにstartAnimation:が呼び出されるということがあり得るのでしょうか?
826名称未設定:2005/07/30(土) 02:10:35 ID:rwHYafP/
startAnimation:の冒頭に

if (timer)
 NSLog(@"sex");

と入れていろいろ操作してみましたが、sexと出ませんし。
827名称未設定:2005/07/30(土) 03:03:44 ID:+1S+VDV2
念のため
828819:2005/07/30(土) 09:34:32 ID:s1t5N8dN
>>819です。すみません、またなりました。今回は再起動しても無理っぽいです。

キャプチャ:http://up-n.mydns.jp/src/up1146.png
829名称未設定:2005/07/30(土) 10:42:34 ID:HkHcFJnl
>>828
あーDocument-basedじゃないアプリだけど俺もなったことある
大抵再起動したら直ったけど。
とりあえずxcode2.1にした方が良いと思いますよ
830名称未設定:2005/07/30(土) 15:49:58 ID:+1S+VDV2
鉄ちゃんの予感!
831名称未設定:2005/07/31(日) 12:16:31 ID:98t1vGSB
>>829
とりあえず、2回再起動したら治りました。ありがとうございます。
でもこんなのが毎日起きたらやだなぁ・・・

>>830
そんな細かいところまで見ナイデw
832名称未設定:2005/07/31(日) 13:03:42 ID:Argl6YtQ
>>831
毎日でもないけど俺の環境だと結構頻繁になってた気がするなぁ
2.0はなんか不安定だった印象
2.1にはしたくないの?Xcodeやらgcc4.0のバグフィックスされてるよ
833831:2005/07/31(日) 20:55:21 ID:3pl0dhIm
>>832
いえ、Pantherなんで2.1にできないんです・・・
834名称未設定:2005/07/31(日) 21:05:48 ID:3aWuWOYZ
>>833
とりあえず初期設定とか捨ててみたら?
基本的な事はもうすでにやってるとは思うが...。
すでにやってみた対策を書けば、もっと
具体的な対処方法が出てくるかもよ。
835名称未設定:2005/07/31(日) 21:14:07 ID:XWbUAKrY
>833
2.1 にできないにしても 1.5 にしてる?
スクリーンショットだけじゃ Xcode のバージョンがちょっと
わからないけど。まさか 1.0 のままってことはないよね?
836831:2005/07/31(日) 21:56:33 ID:3pl0dhIm
>>834
とりあえず、最初はプロジェクトに問題があるのかと思って
ターゲットのクリーニングをしてみたりしたけど効果無し。
新規プロジェクトをそのままビルドしてもなる時もある。
あと、他の作業(Xcode以外のアプリ)をしてるといつの間にか治っていたりする時もある。
再起動は治ることもあるけど治らないこともある。

>>835
実はまだ1.1です…
ハードディスクの残り容量があと593MBしかないんですけど
アップデートできますかね?
837名称未設定:2005/08/01(月) 00:07:20 ID:06MGIlTD
>>836
ディスクは大して食わないが、ダウンロード中にdisk fullになるかも…
エロいムービーやら画像をどっかにやるのが先だな。
838名称未設定:2005/08/02(火) 12:33:26 ID:ivpgqzbE
>>815
良くやった。
839831:2005/08/02(火) 14:15:08 ID:6sDmPtbl
とりあえず、でっかいファイル達をどうにかして
ディスクに余裕ができたら1.1入れます…
840名称未設定:2005/08/02(火) 22:51:41 ID:8sIYlADS
>815
投票したいけど、これ投票して復刊決まったら購入義務あるっぽいね
少し前にアマゾンで財布はたいて古本買ったからもう一冊買うのは流石にきつい……応援だけしまつノシ
841名称未設定:2005/08/02(火) 23:33:11 ID:8D8Jrgfk
萩原本が名古屋のビックに売ってたから買ってきた。
中々面白い本だね。
842名称未設定:2005/08/03(水) 12:01:48 ID:F/lZrGCd
おいらもAmazonでプレミア付いたの買ってしまった。
探し回るよりいいから納得してるけど。
というか、もうAmazon無しでは生活できん。
843名称未設定:2005/08/03(水) 13:55:46 ID:Dg3dCBIa
>>840
復刊ドットコムの投票は購入義務無いよ?
844名称未設定:2005/08/06(土) 12:52:12 ID:Qp6+5zdK
ho
845名称未設定:2005/08/06(土) 18:52:08 ID:iKmI/2Eh
  
846名称未設定:2005/08/08(月) 21:31:04 ID:3JMjwqv4
mouseMoved:をNSViewで使用することはできませんか?
setAcceptsMouseMovedEvents:がNSWindowでしか用意されていないようで。。

mouseEntered:と一緒に使いたいのですが、
こっちはaddTrackingRectがNSViewにしか用意されていないようで。。
847名称未設定:2005/08/09(火) 00:10:11 ID:pB8o6jeO
>>846
何をしようとしてるのか分からないので、うまく答えられませんが
NSWindowのsetAcceptsMouseMovedEventsで
NSViewにイベント来ますよ。
848名称未設定:2005/08/11(木) 02:35:09 ID:CD/IXRxf
Objective-C/Cocoaの連載 キタ━━━━(゚∀゚)━━━━!!
http://pcweb.mycom.co.jp/column/objc/001/
著者はmkino氏
849名称未設定:2005/08/11(木) 03:25:06 ID:fV0cGYcd
お〜 mkino 氏! 早速 class-dump インストールしました
850名称未設定:2005/08/11(木) 23:07:34 ID:dymLvcq9
CocoaでのNSAppleScriptの制御について質問です。
thePathに日本語を含むPOSIXパスを渡すと文字化けが発生して認識できません。
正しく認識するにはどうしたら良いでしょうか?


NSDictionary* error = nil;
id source = [NSString stringWithFormat:
@" ¥n¥
tell application ¥"iTunes¥" ¥n¥
play POSIX file ¥"%@¥" as alias ¥n¥
end tell ¥n¥
", thePath];

id as = [[[NSAppleScript alloc] initWithSource: source] autorelease];
[as executeAndReturnError: &error];
851名称未設定:2005/08/11(木) 23:19:16 ID:z0CLJFPW
>>850
NSPathUtilities.h
[NSString fileSystemRepresentation]

かな?
852名称未設定:2005/08/12(金) 01:02:02 ID:PqrnpewI
>>851
それだと通らないようです。
853名称未設定:2005/08/12(金) 01:27:18 ID:p1j26+7N
>>852
%@ を %s に変えた?
854名称未設定:2005/08/12(金) 01:51:18 ID:PqrnpewI
>>852
最初stringWithCStringでやりましたが%sの方でも試しましたところ駄目でした。
855名称未設定:2005/08/12(金) 19:39:48 ID:7Jf/36Fn
>>850
IPCやオブジェクトモデルを理解する良い機会
遠回りで遅くて不安定な方法は止めて、自分でAppleEventを作って送りませう。
856名称未設定:2005/08/12(金) 23:38:13 ID:mp3y7lXe
>>850
stringWithUTF8Stringを使ってみ。
857名称未設定:2005/08/12(金) 23:59:18 ID:onYnoqwP
@""の中の%sはデフォルトのエンコーディング(日本ならSJIS)が期待されてるから
stringWithCString: でいいのでは
858名称未設定:2005/08/13(土) 11:11:26 ID:Yw0P+hAZ
stringWithCStringはdeprecated。
859名称未設定:2005/08/13(土) 12:31:21 ID:HsZzCByI
>>850
%@ を %s にして、
 cString
または
 cStringUsingEncoding:[NSString defaultCStringEncoding]
で行けたはず。

それとは別に、パス文字列からエイリアスの変換は
  set A to (("/Applications/Utilities" as Unicode text) as POSIX file)
  tell application "Finder" to set A to A as alias
と書いたほうが失敗しなかったように記憶してる。細かい理由は忘れた。
860名称未設定:2005/08/13(土) 18:01:07 ID:UEiwJjwn
851さんが書かれているように、フルパスの入ったNSStringのインスタンスに
fileSystemRepresentationを送る(結果はC文字列)のが作法としては正しいような
気がします。
861名称未設定:2005/08/13(土) 18:06:29 ID:s2wVO25x
>>855が書いて通りした方が早いし確実だと思いますが。
862名称未設定:2005/08/13(土) 23:17:22 ID:UjgvpMOj
むむぅ さっぱり分からん。これ応用したら
http://www.pyehouse.com/lynn/termopen.php
を日本語のフォルダも通るようにできるよなぁ
といってみるテスト。
863350:2005/08/15(月) 11:52:19 ID:ldACQzcO
>>stringWithUTF8Stringを使ってみ。
渡したい文字列が fileSystemRepresentation のCStringなのであわないようです。

>>cString
>>cStringUsingEncoding:[NSString defaultCStringEncoding]
英語環境で日本語のファイル名を扱おうとする時に不具合がありました。

>>set A to (("/Applications/Utilities" as Unicode text) as POSIX file)
>>tell application "Finder" to set A to A as alias
この方法で確かに渡した文字列が勝手に変換されて文字化けになる事が減りましたが、
ある特定の文字を含む文字列は、なぜかまた勝手に変換されてしまうようです。

>>遠回りで遅くて不安定な方法は止めて、自分でAppleEventを作って送りませう。
この方法がベストでした。みなさんどうもありがとうございます。
864cocoan:2005/08/16(火) 15:11:46 ID:618uCiBf
実行ログの内容についての質問です。
以下のコードを書いて、強制的にエラーログを表示させました。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
@implementation MyWindow

- (void)awakeFromNib
{
char* p = NSZoneMalloc([self zone], 128);
NSZoneFree([self zone], p);
NSZoneFree([self zone], p);
}
@end

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
上記のプログラムでは、Mallocしたメモリーを2回フリーしています。
このとき吐き出されたエラーログが次のとおりです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
TableTest(563) malloc: *** error for object 0x34cb50: double free
TableTest(563) malloc: *** set a breakpoint in szone_error to debug
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
TableTestというのがテストアプリの名前なんですが、
TableTest(563)という表示の「563」とは何をさしているのかが分かりません。
また、エラーログからソース上でどこが問題の箇所かどうか
見つける方法と言うのはあるのでしょうか?
基本的な質問で済みませんが、ご存知の方、ご教授よろしくお願いいたします。
865名称未設定:2005/08/16(火) 15:58:46 ID:AlBpiXOk
>>864
pid

ちゃんと macosx-dev-jp ML で謝っとけよ。
866cocoan:2005/08/16(火) 16:52:34 ID:618uCiBf
すんません>>865
867名称未設定:2005/08/16(火) 21:41:42 ID:k/KL+vcZ
Objective-Cのメモリ管理について質問です。

ヘッダファイル
@interface MyObject : NSObject
{
id hoge;
}
@end

ソースファイル
@implementation MyObject
- (void) dealloc;
{
[hoge release];
[super dealloc];
}
@end

この場合hogeは一度もretainされたりinitされたりしていませんが
初期化/メモリ確保されていない状態で[hoge release]を発行するのは良くないのでしょうか?
基本的な事で恐縮ですが宜しくおねがいいたします。
868名称未設定:2005/08/16(火) 21:58:26 ID:KVd3aTcG
hoge == NULLであれば問題ないんじゃない?
NULLにはメッセージは送られないそうだし。

個人的には、リリースした後にはNULLを入れるのが好みです

- (void) dealloc;
{
if(hoge != NULL)
{
[hoge release];
hogre = NULL;
}

[super dealloc];
}
869名称未設定:2005/08/16(火) 22:06:03 ID:njRSPvDq
>>867
[MyObject alloc]でインスタンス変数hogeが0(nil)で初期化されてる。
nilに対するメッセージは何にもしないのでOK。
870名称未設定:2005/08/16(火) 22:43:29 ID:k/KL+vcZ
>>868様、869様
ご指導いただきありがとうございます。
nilとして扱う事ができるんですね。場合によっては一部のidを初期化しない事があるのでこれは便利。
871名称未設定:2005/08/17(水) 00:42:01 ID:J+xHstm4
>>868
dealloc で NULL (つーか nilだろ) を代入するのは無意味で無駄。
872名称未設定:2005/08/17(水) 02:03:38 ID:Rdfbox3D
JPEG画像をフルスクリーン表示する方法おしえて・・・
873名称未設定:2005/08/17(水) 02:08:35 ID:Ky4Sb7Ei
1) JPEG画像を読み込む。
2) フルスクリーンで表示する。
以上です。
874名称未設定:2005/08/17(水) 02:13:57 ID:Rdfbox3D
わろすわろすwww
875名称未設定:2005/08/17(水) 02:18:42 ID:Ky4Sb7Ei
フルスクリーンはここら辺か
ttp://cocoadevcentral.com/articles/000028.php

JPEGはググってね。
876名称未設定:2005/08/17(水) 02:21:33 ID:Ky4Sb7Ei
JPEGはここの8回目位からどうよ
中身確認してないからわからんよ
ttp://www.remus.dti.ne.jp/~yoshiki/cocoa/ed1/
877呱々庵:2005/08/17(水) 02:25:04 ID:QTmBXnRr
NSWindowをinitWithContentRect:styleMask:backing:defer:
で初期化生成する場合に、backingを指定しますが
3種類あるモード(NSBackingStoreBuffered, NSBackingStoreRetained, NSBackingStoreNonretained)
は具体的にどういった場合に使い分けをするのでしょうか?
それぞれのモードはDisplay Bufferを経由して画面表示するか
直接画面に描画するかのモードの切り分けということは分かるのですが
どういうときに、どれを使うのかが分かりません。
ご存知の方、どうか宜しくお願いいたします。
878名称未設定:2005/08/17(水) 02:55:37 ID:Rdfbox3D
>>875-876
ありがとう。英語苦手だけど、がんばって読んでみます。
>>876の方はすでに確認済みでした。
879名称未設定:2005/08/17(水) 03:03:26 ID:Ky4Sb7Ei
ttp://www.big.or.jp/~crane/cocoa/top.html
「フルスクリーン表示のサンプル」

ズバリそのままあった...orz
もう見てないか。。。
880名称未設定:2005/08/17(水) 03:09:51 ID:Rdfbox3D
>>879
見てますよ。

3日ほど前からCocoaとObjective-Cの勉強を始めたばかりなので、
「Cocoaはやっぱり」や>>876の「Cocoaでいこう! Macらしく」あたりの
初心者の勉強向けと思われるサイトはひととおり巡ってます。

そんなわけで、>>879も既に確認済みだったわけなんですが、
自分がやりたいと思っているのはそういうのとはちょっと違うんですよね・・・
画面だけをフルスクリーンにするんじゃ駄目で、
画像もそれにあわせてフルスクリーンにしたいので。

ともかくいろいろありがとうございました。
881名称未設定:2005/08/17(水) 03:49:20 ID:Ky4Sb7Ei
882名称未設定:2005/08/17(水) 03:56:13 ID:Ky4Sb7Ei
上記の内容と後、ADCの"Windows and Panels"なんか見ると

but their results do get to the screen more quickly than those of buffered windows.

なんて書いてあるんでゲームなんかで高速な書き換えが必要なら
retainedかnonretained使えって事じゃないですかね。
恐らくですけど。。。
883名称未設定:2005/08/17(水) 04:57:10 ID:J+xHstm4
>>880
-drawInRect:fromRect:operation:fraction:
884名称未設定:2005/08/17(水) 14:16:05 ID:2d95EYSf
自作Cocoaアプリの簡単なヘルプを書こうかと思っています。
いまのところOSXに付属のスティッキーズのヘルプが簡単そうなのでまねてみようと思います。
しかしスティキーズ.appのパッケージの中にヘルプファイルが置かれていません!

どこにリンクされているのでしょうか。
885名称未設定:2005/08/17(水) 14:20:27 ID:eHCv7liq
くだらんネタだな、おい。
886名称未設定:2005/08/17(水) 14:52:10 ID:5hZU36P4
>>884
パッケージの中にちゃんとあるだろ、よく見ろ。
ちなみにヘルプの作り方は

ttp://homepage.mac.com/harawo/tipsHelp.html

ここが詳しい。
887呱々庵:2005/08/17(水) 15:04:23 ID:QTmBXnRr
>>881 >>882

情報ありがとうございます。
ゲーム等の高速な書き換えが必要な場合や、メモリーが切迫した状況等でなければ
NSBackingStoreBufferedを使用することで問題なさそうですね。
888名称未設定:2005/08/17(水) 16:15:07 ID:2d95EYSf
>>886
>パッケージの中にちゃんとあるだろ、よく見ろ。

もう一度念入りにパケージの中身を参照しましたが本当にどこにもヘルプフォルダがありませんでした。
他のOSX標準アプリケーションはちゃんとアプリケーションパッケージ内にあるのですがスティッキーズは何故か見当たりません。
889名称未設定:2005/08/17(水) 16:37:09 ID:GQFKituz
>>888
ん?バージョンが違うのか?
オレのはMac OS X 10.4.2付属のスティッキーズ5.1.0だが
Contents>Resources>各.lproj内に、StickiesHelpがあるぞ。
890名称未設定:2005/08/17(水) 23:48:15 ID:1aIoUSiF
ないみたいだねえ@10.3.9
891スティッキーズのヘルプ:2005/08/17(水) 23:52:23 ID:2d95EYSf
>>890
そうなんですよ。Pantherだと見つからない。
一応、Library/Documents/HelpやらSysytem/Libraryやらを
CFBundleHelpBookFolder」に指定されている名前で
検索したのですがなぜか引っかからないんです。
892名称未設定:2005/08/17(水) 23:53:32 ID:Ky4Sb7Ei
10.3.9でなら
/Library/Documentation/Help/MacHelp.help/Contents/Resources/Japanese.lproj/pgs/
に含まれとる
ax_stky.htmlとstk2.htmlからstk20.html
MacHelpの一部になっとるな。
893名称未設定:2005/08/17(水) 23:55:56 ID:2d95EYSf
>>892
どうもありがとう!なぞが解けました。
894名称未設定:2005/08/18(木) 20:10:04 ID:7oK8N7Uc
895名称未設定:2005/08/18(木) 20:20:00 ID:OSz+hZSD
http://pcweb.mycom.co.jp/column/objc/002/
第2回
Objective-Cの動的型付け
896名称未設定:2005/08/18(木) 23:00:44 ID:dWh03gv5
>>894

GJ!!
アスキーの記事か・・・懐かしいね(´ー`)y-~~
897名称未設定:2005/08/19(金) 23:22:30 ID:ilkGC02Y
こんばんわ。
本購入の指南をお願い致します。

趣味レベルですがObjective-Cでcocoaアプリを作りたいと思っています。
仕事でC、Javaでのプログラムの経験がありオブジェクト指向もそれなりに
分かります。

この度、XCodeを使用してcocoaアプリを趣味で作ろうとしたのですが、
ファイルの構成や意味、XCodeの使い方がいまいち分かりません。
また、こういうGUIを作りたいなと思っても実現方法が分かりません。

その辺りが分かればクラスの使い方等はドキュメントを見ればなんとかなりそうなのですが、
現在、それ以前の段階なのでドキュメントを見てもちょっと良く分からない状態です。

そこで、本を買って勉強したいのですがどの本が適していますでしょうか?
一応今の所下記の本が候補にあがっていますが他の本がありましたら紹介頂けたらと思います。
日本語希望です。

・Happy Macintosh Developing
 http://www.amazon.co.jp/exec/obidos/ASIN/4861001242/qid=1124460150/sr=1-3/ref=sr_1_10_3/249-3478055-2918704
・Mac OS X Cocoaプログラミング
 http://www.amazon.co.jp/exec/obidos/ASIN/489471440X/qid=1124460323/sr=1-1/ref=sr_1_10_1/249-3478055-2918704
・Xcodeプログラミング入門
 http://www.amazon.co.jp/exec/obidos/ASIN/4839913579/qid=1124460362/sr=1-3/ref=sr_1_10_3/249-3478055-2918704
・はじめてのMacOS X Cocoaプログラミング
 http://www.amazon.co.jp/exec/obidos/ASIN/4898143156/qid=1124460377/sr=1-10/ref=sr_1_10_10/249-3478055-2918704
・入門Cocoa
 http://www.amazon.co.jp/exec/obidos/ASIN/4873110769/qid=1124460377/sr=1-4/ref=sr_1_10_4/249-3478055-2918704

どうかよろしくお願いします。
898名称未設定:2005/08/19(金) 23:51:42 ID:PIRv2tBl
>>897
本を買うんなら Xcode 以前の本だが2番目を推したい。
Xcode の使い方なんぞは弄ってるうちに分かるし、
だとすれば Cocoa プログラミングの思想に触れることができる方が後々有意義だ。

2番目>1番目>5番目>>4番目>>>>>>>>>>>>3番目
くらいの順で買う価値がある。
他の本は知らない。
899897:2005/08/20(土) 00:23:17 ID:e4OuaAWu
>>898
レスありがとうございます。

> Xcode の使い方なんぞは弄ってるうちに分かるし、

全くその通りです。そこに紙面が割かれて高くなるんだったら
なくてもかまいません。

> だとすれば Cocoa プログラミングの思想に触れることができる方が後々有意義だ。

こちらも全くその通りですね。
基本を押さえたいと思っていましたので、
2番目の本をチェックしてみます。

非常に参考になりました。ありがとうございます。
900名称未設定:2005/08/20(土) 00:31:17 ID:QS0MwUet
>>897
3番目の本は買う価値なんか全然ないぞ。
901897:2005/08/20(土) 00:34:00 ID:e4OuaAWu
>>900

3番目の本(「Xcodeプログラミング入門」)は
そんなにだめなんですか。
898さんもそう言われてますし。

名前的にはよさそうだと思っていたんで
お聞きして助かりました。

902名称未設定:2005/08/20(土) 01:30:45 ID:QS0MwUet
>>901
ここの板のプログラム関連スレを読めばかの本の批評は出てくるけど、
いいという香具師は一人もいない。会社で予約して買ったけど、まったくの
金の無駄だった。
903名称未設定:2005/08/20(土) 07:55:17 ID:NpsE7JpP
ちゃんと理解したければ
http://www.amazon.co.jp/exec/obidos/ASIN/4877780688/250-2586378-5591420
をどうにかして手に入れたほうが良い
絶版だけど
904名称未設定:2005/08/20(土) 10:00:00 ID:lnNwyPKp
Cocoa+Objective-cでCGIを作りたいと思い、
ttp://www.halbiz.com/osaru/archives/cat_eoe.html
を参考にしようと思ったのですが、perlでいう環境変数って
どのように取り出したらよいでしょう?
具体的にはcookieのやりとりをしたいと思います。

標準出力とかは[NSFileHandle fileHandleWithStandardOutput]で
良さそうなのはわかったのですが・・・。
905名称未設定:2005/08/20(土) 10:18:36 ID:svxAI1qH
>>904
getenv(3)
environ(5)
906904:2005/08/20(土) 10:37:50 ID:lnNwyPKp
なんかそっちの環境変数は別物のような気がするのです・・。
HTTP_COOKIEを取り出したいんですが、それでいけますか?
907名称未設定:2005/08/20(土) 11:02:37 ID:MWbluaXs
>>906
やってみればいいじゃん。同じだと思うよ。環境変数って普通同じものを
さすので。
908907:2005/08/20(土) 11:29:45 ID:MWbluaXs
やってみた所、getenvでそれっぽいのが表示されたよ。
909名称未設定:2005/08/20(土) 13:59:39 ID:e4OuaAWu
エラー発生時に例外情報を表示して、
送信を促すダイアログって簡単に作れませんか?
910名称未設定:2005/08/20(土) 14:14:10 ID:2TwDzMjG
>>909
それ系のフレームワークがなかったっけ?
911名称未設定:2005/08/20(土) 14:58:30 ID:MWbluaXs
今の所Appleの開発環境だけではそういうことはできなかったよね。
サードパーティーのフレームワークを使えばできるらしい。
http://homepage3.nifty.com/kimuraw/misc/crashreporter.html

ILCrashReporterはたしかに簡単そうだ。
912名称未設定:2005/08/20(土) 15:41:37 ID:iGuorXO8
>>898
四番目の本でCocoa覚えた俺の立場は(´・ω・`)
913名無し募集中。。。:2005/08/20(土) 18:09:25 ID:7VG36rT5
萩原本でObjective-Cはだいたい理解したけど、
Cocoaについてもっと知りたいので今ヒレガス本注文しました。
914名称未設定:2005/08/20(土) 18:10:08 ID:7VG36rT5
名前欄ミスった。。。
915名称未設定:2005/08/20(土) 18:27:35 ID:HEi3CGBA
>>898
Cocoaの入門書であれば、2番目と4番目をお勧めする。
5番目は書籍として少々読み難い。
1番目も読み難いが、中級者向けの資料としては意味があるかも。
3番目は問題外。

916名称未設定:2005/08/20(土) 19:06:14 ID:pQKzrt+U
>>897さんと近いですが、私もこれからcocoaの勉強を始めようと思い
こちらのスレをROMしてますが、C言語をほんの少しかじっただけな
の状態なんで>>903さんが紹介されている本を先ず手に入れ習得後
2番目の本へ進む方が良いのでしょうか?
当方以前VB4はお遊び程度組んでいた事があります。
御教授お願いします。
917名称未設定:2005/08/20(土) 19:36:59 ID:AnBNhwsQ
遊びで使う程度だったら
Webの文書あさるだけでも十分って気もする。
918名称未設定:2005/08/20(土) 20:04:03 ID:pQKzrt+U
「cococaはやっぱり」で入門編は勉強しましたが、その後からの
例題等がいきになりレベルが高そうで・・・
何か足ががりになるサイトが有れば教えて下さい。
919903:2005/08/20(土) 21:31:56 ID:KXdh5w/F
>>916
これはあくまでも自分の体験だけど
>>903よりも>>898を先の方が良いと思う
Obj-Cの基本は>>898の上位四冊ならどれでも学べるよ
それで一通り学んだ後に>>903を読むと、より深いところが理解できる

おれは>>903を最初に読んだけど具体的なことがよくわからなくって、
次に「はじめてのMacOS X Cocoaプログラミング」読んでそれらしいものが作れるようになって、
改めて>>903を読んだら「なるほど、よくわかった」と感動したクチです
920名称未設定:2005/08/20(土) 23:12:50 ID:pQKzrt+U
>>919
レス有り難うございます。そうですか、>>898にて紹介されて
いる本での勉強が先なんですね。
更に奥深く勉強するんで有れば>>903での勉強を行う事で
一度検討してみます。
親切に有り難うございました。
921897:2005/08/20(土) 23:57:24 ID:jBDYx5c4
今日2番目の本を立ち読みして、
ターゲットがあっていたのと僕が知りたいことが書いてあったので
早速購入しました。

ちなみに、>>903はObjective-Cに興味があったので、
以前手に入れて大体読みました。

その後、Cocoaを作成したくなり、オンラインドキュメントでどうにかなるかなと
思っていたのですが、ならなくて今に至った次第です。

「Cocoaはやっぱり」に関しては、>>918さんと同意見です。

しかし、2番目とか分かりにくいですね。
922名称未設定:2005/08/21(日) 00:39:49 ID:1geYDtzF
HMDTだけで十分。てかほとんどAppleの文献の日本語訳みたいなもんだし。
だいたいの様子をつかんでから、英語のドキュメント嫁ばよろしい。
あとサンプルコードのコメント。別に辞書使うなとか言ってないし。
923名称未設定:2005/08/21(日) 00:48:19 ID:DPjpG/ok
・Mac OS X Cocoaプログラミング
 http://www.amazon.co.jp/exec/obidos/ASIN/489471440X/
・Happy Macintosh Developing Time
 http://www.amazon.co.jp/exec/obidos/ASIN/4861001242/
・入門Cocoa
 http://www.amazon.co.jp/exec/obidos/ASIN/4873110769/
・はじめてのMacOS X Cocoaプログラミング
 http://www.amazon.co.jp/exec/obidos/ASIN/4898143156/

この順番に読み進めていけばいいってことか。
924名称未設定:2005/08/21(日) 00:55:27 ID:DPjpG/ok
>>922
HMDTってそんなにいいかなあ?
初心者向けを謳っているけれど、
本当の初心者じゃ、読んでも理解できないという印象。
なんかいろいろ前提となっている知識が無いと利用できないというか・・・

オブジェクト指向言語自体初めての俺には無理があった。
GUIもX11のXlibしか使ったこと無かったし。まあそれは関係ないか。
925名称未設定:2005/08/21(日) 00:56:09 ID:ma/2DmMB
HMDT以外のどれか一冊で十分だろ
926名称未設定:2005/08/21(日) 01:09:22 ID:4ugMOVPZ
>>924
私はCも全く知らんかったけどHMDT読んでcocoaアプリ作れるようになりましたよ。
perlで遊んでたことはあったけど。
927名称未設定:2005/08/21(日) 01:22:57 ID:DPjpG/ok
>>926
そうなんだ。俺はHMDTじゃ駄目だと感じたので、
ネットで検索して
http://www.big.or.jp/%7Ecrane/cocoa/
http://www.remus.dti.ne.jp/%7Eyoshiki/cocoa/ed1/index.html
http://www.oomori.com/cocoafw/index.html
http://homepage.mac.com/mkino2/cocoaProg/index.html
あたりを参考にして勉強した。んで、1週間ちかくもかかったけど、
前から作りたいと思ってた簡単な(あくまで自分用の)アプリは作れました。

しかしXcodeの使い方についてはともかく、
Objective-Cについてはこれでいいのかどうなのか・・・
一応意図した通りに動いているし、Warningも出ないけど、
やっぱちゃんと本買って勉強した方がいいのかなあと思ってます。
928916:2005/08/21(日) 01:52:15 ID:4hUxD1L8
皆さん色々とアドバイス有り難うございます。
本と、教えて頂いたpageを参考に色々と試行錯誤して
みます。
また困った時は宜しくです。
929名称未設定:2005/08/21(日) 09:38:11 ID:D2kguxJ1
>>923
あえてどれかを選ぶとすると、俺はヒレガス本(一番上)かな
基本的にどれも似たり寄ったりなので入門の用途ではどれか一冊読めば十分でしょ
930名称未設定:2005/08/21(日) 13:26:30 ID:4ugMOVPZ
>>927
あ、もちろん私もネットで検索して色々見ましたよ。
というか最初見に行ったのがここですから
ttp://www.nmn.jp/~hidai/c/
ttp://homepage1.nifty.com/toshio-k/prog/c/pointer.html
次にHMDT本を読みながら書いてあるコードを打って(足りない部分はコピペで)作っていきました
そしてHMDT本や>>927のサイトやその時々に必要なものを検索しながらオリジナルのものを。
ttp://wwwa.dcns.ne.jp/~nito/CocoaClub/もよく読みましたね
初心者…というか何も知らない素人がHMDT本「だけ」で作ってくのは難しいのは同意です。
cocoaはやっぱり!本のXcode対応版がもしあれば素人向けには良さそうなんですが

あと、仕事じゃないんですし動けば良いんですよ。自分用なら特に。
プログラムは手段であって目的ではないんですし。
まぁプログラムが目的(趣味とかスキルアップ)って事もあると思いますが…その場合はまぁ…好きでやるから悩む必要ないですし
931名称未設定:2005/08/21(日) 15:07:02 ID:Ktuo0fAG
ある程度コードが書けるようになったら、オープンソースな
アプリのソースを眺めてみましょう。いい勉強になりますよ。
932名称未設定:2005/08/21(日) 23:42:46 ID:1Auzn2O/
iCalのカレンダー部分のような画面を作成したいのですが、
どのビューをもとにすればいいでしょうか?

等間隔のセルに区切って、内容の表示等、クリックイベントを受け付けたり
セルをまたいだイベントの表示のような表示をしたいです。
933916:2005/08/22(月) 00:14:47 ID:5C5zNugQ
>>931
有り難うございます。ソースコードに至までの道は険しいですが
頑張ってみます。
934名称未設定:2005/08/22(月) 00:42:08 ID:V50aqF00
A.mで作ったクラスをB.mで使うにはどうすればいいんでしょうか?
935名称未設定:2005/08/22(月) 01:01:05 ID:2+Yl08VL
#import "A.h"
936名称未設定:2005/08/22(月) 01:07:36 ID:V50aqF00
ヘッダファイルを読み込めば良かったのかーッ!!
ありがとうございました!
937名称未設定:2005/08/22(月) 07:22:38 ID:5CbJqyAr
>>932
NSControllerのサブクラスに自作セルを張り付けて行くんじゃない?
セルの用途によってはNSViewのサブクラスでもいいかもしれないけど。
938名称未設定:2005/08/22(月) 10:53:50 ID:cMkr62B1
>>932
ADCにCalendarViewってサンプルコードがある。
939名称未設定:2005/08/22(月) 13:12:06 ID:waxZW/DC
>>924
洩れも同感。
HMDTはお薦めできない。
内容が初心者向けで無い事もあるけど、そもそも文章が読み憎い。
940名称未設定:2005/08/22(月) 13:15:50 ID:waxZW/DC
ヒレガス本は第二版が出てるのだけど、翻訳されないのかなぁ。
http://www.amazon.co.jp/exec/obidos/ASIN/0321213149/
941名称未設定:2005/08/22(月) 22:35:32 ID:a05L8pO5
こないだ荻原本の新刊を池袋のジュンク堂で買ってきた。
自由価格コーナーに一冊だけあって1600円くらいだった。
多分これが最後なんだろうなぁと。

俺今本業がJ2EE/.NET屋だけど、確かにこれ分かりやすいね。
絶版だとは勿体ない・・・
942名称未設定:2005/08/22(月) 22:37:32 ID:UPN0VTvc
絶版つうか出版社がつぶれたんだ
943932:2005/08/22(月) 22:50:06 ID:7ndLQPXV
レスありがとうございます。

>>937

なるほど。試してみます。

>>938

情報ありがとうございます。
このようなサンプルもあるんですね。
でもこのサンプルCarbonなんですね。
Cocoaを始めたばかりなので、解読できるか分からないですが、
参考にします。
944名称未設定:2005/08/22(月) 23:09:04 ID:cF4VGdnm
初歩的な質問と思いますがお願いします

ボタンを押して、その後(カーソルの位置に関係なく)マウスを上げたタイミングが取りたくて、
NSButtonをサブクラス化したのですが、mouseDown:は呼ばれるのですがmouseUp:が呼ばれません。
どのように実装すべきでしょう?

@interface CustomButton : NSButton
@end
@implementation CustomButton
- (void)mouseDown:(NSEvent *)theEvent
{
NSLog(@"%s",__func__);
[super mouseDown:theEvent];
}
- (void)mouseUp:(NSEvent *)theEvent
{
NSLog(@"%s",__func__);
[super mouseUp:theEvent];
}
@end
945名称未設定:2005/08/23(火) 01:27:38 ID:HwfSfuTC
NSCellのtrackMouse:inRect:ofView:untilMouseUp:
と関連メソッド達が絡んでそうとか言ってみるテスト。
946名称未設定:2005/08/23(火) 14:24:58 ID:+b9ZS/vN
http://developer.apple.com/ja/documentation/japanese.html

Cocoa

プログラミングトピック - Cocoa Topicsの抜粋です。
Cocoa とは? (PDF 7.1MB)
オブジェクトとの通信 (PDF 3.4MB)
アプリケーションアーキテクチャ入門 (PDF 1.1MB)
ドキュメントベースアプリケーション入門 (PDF 3.5MB)
Objective-C プログラミング言語
Cocoa バインディング入門
キー値コーディング(Key Value Coding)
キー値監視について(Key Value Observing)
Core Data プログラミングガイド
947名称未設定:2005/08/23(火) 19:02:02 ID:l7VsLHQx
IM(ことえり)で、文字変換中がわかるAPIとかありますか?
948名称未設定:2005/08/23(火) 19:39:24 ID:yCFAJHTa
マルチすんな
949名称未設定:2005/08/23(火) 20:53:34 ID:5vWw4tP9
$B:G6a(Btiger$B$rF~$l$F!"(B
Happy Machintosh Developping Time$B$N5-=R$r$J$>$C$F$_$F$k$H$3$m$J$s$G$9$,!"(B
interface builder$B$G%3%M%/%7%g%sD%$m$&$H%3%s%H%m!<%k%I%i%C%0$7$h$&$H$7$F$b!"(B
$B%Z%$%sFb$NB>$N%"%$%3%s$,A*Br$5$l$k$@$1$G!"BP>]$N%*%V%8%'%/%H$H%3%M%/%H$G$-$J$$$s$G$9!#(B

$B#2G/$/$i$$A0$K$A$g$C$H;n$7$?;~$bF1$8>u67$K$J$C$F!"$=$N;~$O(Bpreference$B$+$i(Bconnection$B$N(Block$B$r(B
off$B$K$7$?$i$-$A$s$HF0$$$?$h$&$J5-21$,$"$j$^$9!#$,!":#2s$O(Block$B$5$l$F$$$J$$!#(B

$B$3$s$J$J$C$F$kJ}$$$^$9$+!)(B
$B@5$7$/F0$/$K$O$I$&$9$l$P$h$$$G$7$g$&$+!"C/$+65$($F$/$@$5$$!#(B
950名称未設定:2005/08/23(火) 20:54:58 ID:5vWw4tP9
最近tigerを入れて、
Happy Machintosh Developping Timeの記述をなぞってみてるところなんですが、
interface builderでコネクション張ろうとコントロールドラッグしようとしても、
ペイン内の他のアイコンが選択されるだけで、対象のオブジェクトとコネクトできないんです。

2年くらい前にちょっと試した時も同じ状況になって、その時はpreferenceからconnectionのlockを
offにしたらきちんと動いたような記憶があります。が、今回はlockされていない。

こんななってる方いますか?
正しく動くにはどうすればよいでしょうか、誰か教えてください。
951名称未設定:2005/08/23(火) 21:05:19 ID:taWqdi8V
化けた件について一言もねーのかよ、クズが。
氏ね。
952名称未設定:2005/08/23(火) 21:19:20 ID:wySE+4cQ
EUCだね。
953名称未設定:2005/08/23(火) 21:26:13 ID:5vWw4tP9
あの、化けちゃったのはすいません
わざわざ1レス潰すのはどうかと思ったんで
そこばっかレスくれないでください

なんか
>>565
で同じようなトラブルにあってる人がいる...なんかやたら怒られているけどw
954名称未設定:2005/08/23(火) 21:29:05 ID:rVMBP5IX
>>952
いや、これはISO-2022-JP→Shift_JISの文字化けだな
955名称未設定:2005/08/23(火) 22:46:07 ID:+m5xsgG6
>>950
昔なったことある。
仕方なく再インストールしたよ。
956名称未設定:2005/08/23(火) 23:29:55 ID:VGdDnLhv
100兆くらいまでの数字をあつかいたいのですが、
どのようにすればいいでしょうか?
957名称未設定:2005/08/23(火) 23:44:15 ID:NYAnYQ49
多倍長演算?
cocoaとはあんま関係無いような
958956:2005/08/24(水) 00:01:15 ID:VGdDnLhv
>>957

すいません。関係ないですよね。

NSNumberでは扱えなかったのですが、
扱えるクラスがあったら教えて頂きたく思っていました。

自分で実装するしかないですかね?

959名称未設定:2005/08/24(水) 00:08:35 ID:1XcQAD5P
NSNumber は long long を扱えるようだが?
960956:2005/08/24(水) 00:34:24 ID:DY7Npnzi
long long でも桁が足りませんでした。

あまり良く分からないので、もうすこし調べます。
すいませんでした。
961名称未設定:2005/08/24(水) 01:33:57 ID:WdFFC9He
一体どんな用途なんだか
962名称未設定:2005/08/24(水) 01:34:39 ID:1cXdzi0r
64bit符号付き整数は、log(2)*(64-1)=18.96...で10進18桁以上の精度がある
から100兆は楽に扱える。
intやlongやlong longが何bitかは処理系依存なので、精度が問題になる時
使ってはだめ。64bit符号付き整数ならint64_tを使う。
ちなみに64bit IEEE doubleの精度は、仮数部53bitだから10進15桁の精度、
これでもギリギリ扱える。
この位はプログラミングの常識
963名称未設定:2005/08/24(水) 01:38:32 ID:VhSzwlzD
$ cat bignum.m;gcc -framework Foundation bignum.m;./a.out
#import <Foundation/Foundation.h>

int main(void)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSDecimalNumber *bignum_1 = [NSDecimalNumber decimalNumberWithString:@"10000000000000000000000000"];
NSDecimalNumber *bignum_2 = [NSDecimalNumber decimalNumberWithString:@"1"];
NSDecimalNumber *answer = [bignum_1 decimalNumberByAdding:bignum_2];

NSLog(@"%@", [answer descriptionWithLocale:nil]);
[pool release];
return 0;
}
2005-08-24 01:37:22.166 a.out[472] 10000000000000000000000001

10000000000000000000000000が100兆かどうかはしらん。
964963:2005/08/24(水) 01:39:51 ID:VhSzwlzD
あっ、10.3.9ね
965956:2005/08/24(水) 02:09:55 ID:DY7Npnzi
>>962
>>963

ありがとうございます。
大変助かりました。

Javaから始めたプログラマなので、
このような知識があまりありません。

そんな私にアドバイス下さりありがとうございました。

966名称未設定:2005/08/24(水) 02:14:59 ID:vICYXI9a
>>961
例えば、近所の小学生をつかまえて
「俺の家には1億円あるんだぞ」と自慢すると
その小学生は「俺んちには100億円あるもん」と答えるので
「本当は1兆円あるもん」と答えると……

というわけで100兆必要になるのです。
967名称未設定:2005/08/24(水) 07:53:20 ID:6EeDnzLu
>>966
それだと1000兆は必要だな
その上は小学生は桁を知らないだろうから大丈夫
968名称未設定:2005/08/24(水) 11:40:01 ID:3AffxZV7
>>967
「うちなんか、100兆万円ある」
969950:2005/08/24(水) 13:59:47 ID:/j7/Bu3S
すいません
ctrlキーが死んでました
python終了させようとctrl-dした時に気づいた

今って(tigerからかな)標準のコンパネでcapsとctrlの入れ替えとかできるんですね
はあ、どうもすいませんです
970名称未設定:2005/08/24(水) 15:30:19 ID:G/67Er1U
>>967
算数の教科書に一十百千万億兆京該……不可思議無量大数
と載ってるぞ。
971名称未設定:2005/08/24(水) 16:58:11 ID:QbWYdxch
>>970
えらいな
よく調べたな、消防。
972名称未設定:2005/08/24(水) 17:50:21 ID:u04C9Zgh
なんだこのガッカリなレス
973名称未設定:2005/08/24(水) 19:07:49 ID:Z8SnSHgD
結果報告しておきます
>>945
そのようですが、色々書いてみたところ、mouseUp:と同じようにするには面倒そうだったので、
mouseDown:のタイミングで、NSTimerで0秒後にメソッド呼び出しするようにしました。
(するとmouseUp:と同じタイミングでそのメソッドが呼ばれます)

ありがとうございました
974名称未設定:2005/08/24(水) 21:52:33 ID:1uxgcycX
>>966
指数で扱ったほうがよくないか?
975名称未設定:2005/08/24(水) 22:28:41 ID:3AffxZV7
BCDクラス作って公開すれ
976名称未設定:2005/08/24(水) 23:14:17 ID:ptHczEO9
>>973
調べもしないで横から割り込むけど
NSButtonだからmouseUp:を拾えないってことは無いかな?
NSViewの直接のサブクラスだとどうだろう?
977名称未設定:2005/08/24(水) 23:52:29 ID:33VhPy/c
>>976
確かにNSViewのサブクラスならmouseUp:が拾えます。
ただボタンとして使用するのが主なので、mouseUp:のために
NSViewのサブクラスにボタンの機能を自作するのは面倒なので
やめました。
978名称未設定:2005/08/25(木) 02:11:49 ID:t0/8n1UN
>>965
Java使ってたからといって、数値変数に無知なことのいいわけにはならないと思う。
979名称未設定:2005/08/25(木) 02:39:28 ID:ZIyjuKQ9
>>962
long long が少なくとも 9,223,372,036,854,775,807 まで表現できることは
規格で保証されてるはずだから、
ここで敢えて int64_t を使う必要性は薄いんじゃないかと思ってみたりする。
980名称未設定:2005/08/25(木) 08:55:12 ID:5oaFu4fD
>>977
うん、だからNSButtonのときはmouseUp:が来ないようにどこかに細工してあるわけだよね
そこを見つけてなんとかすれば良いんじゃないかと

まあButton限定であれば実質mouseUp:=アクションだからそれで良さそうな気もするけど
981名称未設定:2005/08/25(木) 12:01:56 ID:+fNPmdDY
また,買ってはいけない本になるのだろうか。
ttp://book.mycom.co.jp/book/4-8399-1880-5/4-8399-1880-5.shtml
982名称未設定:2005/08/25(木) 12:15:47 ID:A7nRXbod
983名称未設定:2005/08/25(木) 13:20:34 ID:rnnhVhxB
新版の機会を与える出版社にも問題があるな。
984名称未設定:2005/08/25(木) 13:47:47 ID:YwOTWVB3
>>983
一応売れたことは売れたらしい
985名称未設定:2005/08/25(木) 14:25:37 ID:cJCFt5QW
>>980
>mouseUp:が来ないようにどこかに細工
それが>>945あたりではないかと思って、>>973のような結果になった訳です。
>実質mouseUp:=アクション
ボタン上でマウスダウン&ボタン外でマウスアップした場合にもmouseUp:は呼ばれる
点がアクションとは違うので、単純にアクションで処理する方法は取れませんでした。
986名称未設定:2005/08/25(木) 14:39:02 ID:KIAEMmqI
>>985
mouseUp で何がしたいのかよく分からんけど、
>>944

[ super mouseDown: theEvent ];
は、mouse up するまで帰ってこないんだと思うので、
そこから戻ってきたタイミングではダメなのかな?
NSTimer を使う方法ってのも、それまでタイマー処理が
保留されているだけだと思うんだけど。
987名称未設定:2005/08/25(木) 15:32:56 ID:cJCFt5QW
>>986  Σ(;゚Д゚)ガーーーン
言われてみればそうです... なぜ気付かなかったんだ俺のアホ!
[super mouseDown:theEvent]; はすぐ返ってくるものと確認せずに思い込んでいたことと、
mouseUp を呼ばせることばかりに気が行って、自分の中で盲点になっていました。

それでやりたいことは出来ます。いい反省材料になりました。
ありがとうございました。
988名称未設定:2005/08/25(木) 23:27:16 ID:NiLpUlXV
大昔のObjective-CとNeXTのプログラミングの記事

ttp://k-kura.net/upload/src/k-kura.net0463.zip.html
989名称未設定:2005/08/26(金) 00:04:21 ID:7eX9WAfR
DLKeyは?
990名称未設定:2005/08/26(金) 00:15:09 ID:KVhc5/YC
>>989
ヒント:記事になってるコンピュータの名前
991名称未設定:2005/08/26(金) 00:21:21 ID:P7yQzWV+
>>990
FM-TOWNS?
992名称未設定:2005/08/26(金) 00:45:13 ID:nGYAYf+9
>>988
またいいものもらいました。
ありがとうございました。NEXTSTEP フリークより
993名称未設定:2005/08/26(金) 00:48:12 ID:ko+blQS5
>>991
テラドライブ
994名称未設定:2005/08/26(金) 01:19:16 ID:TkabOsNW
>>988
NEXTSTEPフリ−クじゃ無くても
面白かった。ありがと。
995名称未設定:2005/08/26(金) 01:23:28 ID:TkabOsNW
ついでに新スレ建てといた
http://pc7.2ch.net/test/read.cgi/mac/1124986925/
996名称未設定:2005/08/26(金) 01:43:56 ID:7eX9WAfR
>>990
落とせた。thx
997名称未設定:2005/08/26(金) 03:17:15 ID:jfIcbbox
読んだ事無いから記事読みたいのに記事になってるコンピュータの名前をDLKeyにされたらわかるわけないorz
998名称未設定:2005/08/26(金) 03:27:17 ID:dNVtzHI4
DLKey教えろよゴルァ
999名称未設定:2005/08/26(金) 03:38:37 ID:mvuPjHE7
>>997,998
992や994を見て考えるべし。
1000名称未設定:2005/08/26(金) 03:39:29 ID:mvuPjHE7
そして次スレへ。

Cocoaはさっぱり!!! version.5
http://pc7.2ch.net/test/read.cgi/mac/1124986925/l50
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。