名称未設定<><>04/08/08 10:03 ID:gJ6llCwG<> 初心者は教えてくれる方への感謝を忘れずに。
上級者も初心者だった頃の気持ちを忘れずに。

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

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

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

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

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

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

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

ユーザーがムービーを制御できないようにしたいので、
再生・停止が出来るメニューが出てくると困るんですが。。。 <> 名称未設定<>sage<>04/09/01 20:11 ID:X5yAk+nc<> NSViewの
- (NSMenu *)menuForEvent:(NSEvent *)theEvent
をオーバーライドすれば良いんじゃない? <> 名称未設定<>sage<>04/09/01 20:25 ID:3IMyHQ+Y<> お、きた。
>22 ありがとうございます。 <> 名称未設定<>sage<>04/09/01 22:14 ID:0/BZadaA<> 質問です。NSTableViewの中でテキストセルを編集してリターンやタブを押すと
次の行や列に自動で編集が切り替わりますが、あれは具体的にはどこでやっている処理なんでしょうか?
NSTableViewにはテキストの編集に関するメソッドがいくつか用意されていますが
一通り調べてみてもどこで何が呼ばれているのかわかりませんでした... <> 名称未設定<>sage<>04/09/01 22:31 ID:ljzvK/Bx<> 「どこでやっている処理」という表現が良く分からんのだが。
- (BOOL)textShouldEndEditing:(NSText *)textObject;
- (void)textDidEndEditing:(NSNotification *)notification;
あたりで編集が終わ(る|った)ことを知ることができないか? <> 名称未設定<>sage<>04/09/01 22:52 ID:0/BZadaA<> いや、そうではなくて、セルの編集中にタブやリターンを押すと次のセルに編集が移るわけですが、
その命令が(おそらくテーブルの)どのメソッドの中で出されているのかがわからないんです。 <> 名称未設定<>sage<>04/09/01 23:00 ID:0/BZadaA<> あ、すいません。解決しました。
テーブルの editColumn:row:withEvent:select: で捕まえられるんですね。 <> 名称未設定<>sage<>04/09/01 23:02 ID:0BtJa80i<> 自分の質問をもう一度読み返してみる事をおすすめします。
セル移動はトレースしてみるとすぐわかりますが途中フックはできませんよ。 <> 名称未設定<>sage<>04/09/01 23:29 ID:0/BZadaA<> >>28
単純にあのセル移動を禁止することはできるんでしょうか?
ほとんどのソフトはああいう挙動はしませんよね。 <> 名称未設定<>sage<>04/09/02 00:31 ID:Lld4DGUv<> NSCell か NSControl の
- (int)sendActionOn:(int)mask;
でセル移動を禁止できないだろうか。
いや、勘だが。 <> 名称未設定<>sage<>04/09/03 15:27 ID:+ZA3Lm3T<> NSComboBoxのリストを表示する命令はないのかな?
safariのURLバーのように、文字列が入力されたときに自動でリストを出したいんだけど。 <> 名称未設定<>sage<>04/09/03 16:18 ID:QrV74Dn0<> ほんと、GUIを制御するメソッドは秘密になってるのが多くて困るんだよねえ <> 名称未設定<>sage<>04/09/09 18:59 ID:6oHHNVBW<> キーイベントを強制的に発生させる関数って公開されてる?
ComboBoxの編集中に下矢印が押されたという命令を
強制的に発生させれば、リスト表示できるかなーとか考えたんだが。 <> 名称未設定<>sage<>04/09/09 21:24 ID:btnpZUJh<> >>33
↓キーを押したNSEvent作ってcomboboxのcurrentEditorに keyDown: で送ればどうか <> 名称未設定<>sage<>04/09/09 22:30 ID:/qK9zvH8<> >>33
[[comboBox cell]popUp:comboBox]; <> 35<>sage<>04/09/09 22:34 ID:/qK9zvH8<> あ、33じゃなくて31にレスにした方がよかったな
けどまあヘッダに公開されてるメソッドじゃないけれど <> 31=33<>sage<>04/09/10 09:49 ID:dpUHjlPE<> >35
期待通りの動きができました、ありがとうございます。
(キーを押した瞬間にリストを表示したかった)
で、非公開のメソッドってどうやって見つけてるかな?
ヘッダに載ってないメソッドを調べる方法があるなら教えて欲しいんだけど。 <> 名称未設定<>sage<>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
などとする
書き出されたヘッダファイルには隠しメソッドも載っている <> 名称未設定<>sage<>04/09/11 10:54:16 ID:zktSdYGO<> >38
「command not found」って返ってきちゃう…。
なにか間違ってるのかな…? <> 名称未設定<>sage<>04/09/11 11:14:27 ID:ueWVtJfw<> >39
ちゃんとclass-dumpをパスの通ったとこに置いてる?
which class-dumpってしてみそ。 <> 39<>sage<>04/09/11 13:12:51 ID:fd/QIepv<> >40
サンキュ! パスが通ってなかっただけだった(恥 <> 名称未設定<>sage<>04/09/16 16:50:01 ID:bV4AGSbo<> NSSplitViewでスプリットバーの位置をプログラムからコントロールする
方法ってないですか? いろいろ調べてはみたけどわからない。
<> 名称未設定<>sage<>04/09/16 17:22:08 ID:glnzHTt3<> >>42
subviewのframeを直接変更するしかない
その後で[NSSplitView adjustSubviews] <> 名称未設定<>sage<>04/09/16 18:57:25 ID:bV4AGSbo<> >>43
ありがとう。やってみる。
<> 42<>sage<>04/09/16 19:19:00 ID:bV4AGSbo<> 残念ながらうまくいきませんでした。subViewが小さくなるだけで
スプリットバーの位置はそのまま。逆に反対側のsubViewも大きく
してみても同じでした。

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

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

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

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

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

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

  <⌒/ヽ-、___
/<_/____/ <> 名称未設定<>sage<>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]];
<> 名称未設定<>sage<>04/10/11 14:40:33 ID:mKWZwBrY<> NSButton の -(NSImage *)image; が返す内容を勘違いしているのが原因では?

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


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

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

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

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

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

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

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

[[[MyObject alloc] init] retain];

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

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

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

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

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

 UNIX起源ツールのGUIすらマトモに出来たことがないよ。
なんか、日本語がうまく表示できな… <> 名称未設定<>sage<>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はマイナーすぎですか? <> 名称未設定<>sage<>04/10/23 18:06:13 ID:5AQlkNPW<> http://www.big.or.jp/~crane/cocoa/9000_mdo/MDOnline_2002.01.pdf
<> 名称未設定<><>04/10/23 22:24:16 ID:Ra2ynGf9<> 10人いれば隠れたところに100人はいるすね <> 名称未設定<>sage<>04/10/23 23:43:21 ID:KQJ/yuoV<> ゴキブリかよΣ(´∀`) <> 名称未設定<>sage<>04/10/24 00:16:45 ID:LmVGUhT9<> >>134
つ PyObjC
ttp://pyobjc.sourceforge.net/
そういうことじゃないと思うが。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10.3以降がターゲットなら

@try
@catch
@finally

が使えるよ

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

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

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

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

エディタを作っていて、キャレットの点滅の後にsetNeedsDisplay:YESを
行うと全体を書き直してしまうので無駄な処理が多すぎて難儀してます。
setNeedsDisplayInRect:も結局全体を書き直してしまうし・・・
<> 名称未設定<><>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スクリプト
が有りますが、それらしきコマンドやファイル操作は見当たりませんでした。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

こんな感じですね。

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

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

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

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

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

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

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

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

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

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

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

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

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

報告まで。 <> 名称未設定<>sage<>05/01/13 21:43:56 ID:V+7kcuP3<> >>303
http://www.voyager.co.jp/azur/ <> 名称未設定<>sage<>05/01/13 21:55:22 ID:8PtrluXa<> >>303が日々2chに費やしてるであろう膨大な時間をコード書きに向けれ <> 名称未設定<>sage<>05/01/13 22:23:02 ID:oFGwLnag<> >>301
NSLogにnilなオブジェクトを渡すと、確か(null)って表示されたような気がする
普通のメソッドに渡すとだいたい例外投げるか落ちるか <> 名称未設定<>sage<>05/01/14 03:14:46 ID:OaTTOcBT<> >>307
そんだけの頭が無いもんで・・・。
特に英語の資料とか無理。 <> 名称未設定<>sage<>05/01/14 17:43:58 ID:udyUVaL4<> >>304
ワロテシモタ <> 名称未設定<><>05/01/16 14:04:38 ID:tJNaCTTw<> 起動中のアプリケーションの一覧
を取得するにはどうしたらいいでしょうか?
(Classic環境で実行されているのも含めて) <> 名称未設定<>sage<>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
<> 名称未設定<><>05/01/19 11:34:42 ID:EVat31fi<> 質問です。
Aというファイルの中で宣言した配列変数を、Bというファイルのヘッダに
"#import A.h"して使おうと思ったのですが"first use 〜"とのエラーが出て使えません。
配列変数を別ファイルで使うためにはどのようにすればいいのでしょうか? <> 名称未設定<>sage<>05/01/19 12:06:26 ID:ZACX0ehw<> >313
Cは宣言と確保がきっちり分かれてないから分かりづらいといえば分かりづらい。

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

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

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

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

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

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

後者が正当法だと思う。 <> 名称未設定<>sage<>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のクラスなのでしょうか???

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

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

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

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

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

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

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

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

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

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

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

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

というのを実現するにはどうしたら良いでしょう?
単にNSWindowをタイトルバーなし・透明にして、その上のNSImageに半透明画像を表示す
るだけではクリックに反応してしまいますよね。
うまい方法があれば教えてください。 <> 名称未設定<>sage<>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. <> 名称未設定<>sage<>05/02/24 23:02:43 ID:ez8pICu0<> おお、見落としてたか。thanks!

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

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

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

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

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

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

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

ぐぐったらHMDTの掲示板で同じ質問がありましたが、
私には具体的な解決方法がわかりませんでした・・・。 <> 名称未設定<>sage<>05/02/27 21:32:21 ID:qv4BvTOA<> datasourceにtableView:setObjectValue:forTableColumn:row:メソッドを書くんじゃないの
http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/Protocols/NSTableDataSource.html#//apple_ref/doc/uid/20000122/BCIEDFGG <> 名称未設定<>sage<>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];
}

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

クリックされている行の値は、ワンクリックされた時点でselectionが
クリックした行になるからそれが何行目かはselectedRowでわかる。
値の調べ方は・・・わかるよね?データのselectedRow番目を見ればいい。 <> 名称未設定<>sage<>05/02/28 01:51:10 ID:xxgxzxc0<> >>380
「クリックされたとき」のみであれば381でもいいけど
「選択されたとき」という意味であれば違うからね
調べればすぐにわかるけど
ちなみに、クリックだろうがキーだろうが選択状態を調べるときは
複数選択されている可能性も考慮しましょう。
コード上は複数選択でも動くように実装しておいて
IBで複数選択ができるかどうかを切り替えるのがいいでしょう。 <> 名称未設定<>sage<>05/03/01 13:34:24 ID:cvLLArNy<> >>379
PDFKitはTigerからだが。 <> 名称未設定<>sage<>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回目のインスタンスはどこからも参照されてないのでどうやっても解放出来ない=メモリリーク
//ただしアプリを終了した時には解放される?

これで合ってるでしょうか。
?マークつけたとこは合ってるか自信が無いのですが…
ほんとに頭悪くてすいません… <> 名称未設定<>sage<>05/03/01 21:46:11 ID:pGQNXxNN<> 合ってる。 <> 名称未設定<>sage<>05/03/01 22:24:15 ID:Dlr6OkFI<> >>385
ありがとうございます。やっとこ理解出来ました。 <> 名称未設定<>sage<>05/03/01 23:13:48 ID:u5cCnNmr<> initしてないオブジェクトをreleaseしてちゃんと解放されるかは少し疑問
面倒でもちゃんと
[[NSImage alloc] init];
って書いとけ <> 名称未設定<>sage<>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 をセットにしておけというのは同意。 <> 名称未設定<>sage<>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とか… <> 名称未設定<>sage<>05/03/02 00:10:21 ID:5fWgeDkn<> test が終わった時に解放されるとは限らない。
NSImageView が不要と判断した時に解放される。 <> 名称未設定<>sage<>05/03/02 00:17:23 ID:F1mg1G4n<> >>390
レスありがとうございます。
うむむ…
[imageView setImage:image2]
としてもNSImageViewは不要と判断しないんですか
もうちょっとNSImageViewのDeveloperDocument読んできます <> 名称未設定<>sage<>05/03/02 00:17:35 ID:qpjwD7xE<> >>389
たぶん autorelease pool に入ってるのでは。

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

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

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

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

ブロック構文を使いたい <> 名称未設定<><>05/03/12 00:24:58 ID:dLlkX9wr<> NewsFire の左側のような、
順番入れ替わるときに滑らかにアニメーションする array(?) 項目って
どうやって作るんでしょうかねー。
<> 名称未設定<>sage<>05/03/12 06:29:35 ID:Wsl8ue1+<> NSTimerとか <> 名称未設定<>sage<>05/03/12 08:07:34 ID:WywmQU/Z<> WebViewに既に表示されている文字リンクの場所を
nsrectとかで取得できたりします? <> 名称未設定<><>05/03/12 10:55:50 ID:xbo0Ksfy<> >>408
View は自作ですかねー <> 名称未設定<>sage<>2005/03/22(火) 16:00:15 ID:ZNAFhDCc<> すみません、Cocoa入門したばかりの者ですが
outlineViewを使ってフォルダの中身ではなく
ただの文字をツリー状に表示させてみたいのですがいまいちわからず…
どなたかご教授お願いします <> 320<>sage<>2005/03/22(火) 16:56:43 ID:MBqbsSkH<> >411
DataSourceってのを調べてください。
NSOutlineView.h の最後のほう。
スーパークラスであるNSTableViewを調べておくのもいいかも。
<> 名称未設定<>sage<>2005/03/22(火) 16:57:44 ID:MBqbsSkH<> 名前は間違いです。>320さんとは関係有りません。
<> 名称未設定<><>2005/03/22(火) 21:37:59 ID:HNikHTm5<> NSTaskでコマンドに*のワイルドカードを使った引数を渡そうとすると失敗してしまいます。
(NSTaskはワイルドカードを展開してくれないという記事も見つけたんですが、本当でしょうか)
そんなわけでNSFileManager経由で適合するファイル名をリストにして渡すようにしたんですが、
今度はファイルが多い&ファイル名が長いとコマンドが終了しなくなってしまいます。
ワイルドカードを使った場合と同じ結果(適合するファイルを完璧にコマンドに渡す)が
得られる方法はないでしょうか。 <> 名称未設定<>sage<>2005/03/22(火) 23:05:56 ID:7c4x5GHQ<> ワイルドカード(というかglob)はシェルの機能だからNSTaskは展開しません。
こんな感じにシェルにまかせればいいと思う。
NSArray *args = [NSArray arrayWithObjects:@"-c", @"こまんど", @"foo*", nil];
[NSTask launchedTaskWithLaunchPath:@"/bin/sh" arguments:args]; <> 名称未設定<>sage<>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];
(後略) <> 415<>sage<>2005/03/23(水) 00:53:25 ID:PP/nTh6O<> >>416
[NSArray arrayWithObjects:@"-c", @"/usr/bin/zip test.zip *.txt", nil];
コマンド〜パラメータは1つの文字列に。
てきとうにかいてしまってゴメン。 <> 名称未設定<>sage<>2005/03/23(水) 23:30:06 ID:ONuZLGQ3<> ありがとうございます。できました。 <> 名称未設定<><>2005/04/08(金) 04:11:11 ID:5K1cGjMs<> ランチャーソフト等で使われてるホットコーナーやホットキーのように、
最前面でないアプリがグローバルに入力を横取りするのはどういう仕組みなんでしょうか? <> 名称未設定<>sage<>2005/04/08(金) 04:15:57 ID:IhAq/RUo<> ホットキーは InstallApplicationEventHandler と RegisterEventHotKey を使う。
Apple のサイトにある FunkyOverlayWindow が参考になる。 <> 名称未設定<>sage<>2005/04/09(土) 11:13:52 ID:Z+aAV6SJ<> ホットコーナーだったら任意の場所に透明のウィンドウをフロートで最前面に置いておいて
TrackingRectを監視するってのはどう? <> 名称未設定<>sage<>2005/04/09(土) 12:42:53 ID:2AHWsSdr<> >>420-421
ありがとうございます。やってみます。 <> 名称未設定<>sage<>2005/04/13(水) 09:19:49 ID:no+DdJtG<> toolbarの高さを取得するメソッドはないのでしょうか?

ウィンドウのMaxSizeをアプリ側で固定していますが、
現在はtoolbarが表示されているときには、
defineで指定した数値を足して最大サイズを管理しています。
(数値はtoolbar表示・非表示の時のウィンドウサイズのログから取得) <> 名称未設定<>sage<>2005/04/13(水) 10:00:54 ID:E1bmq/RC<> >>423
ウィンドウの高さ - contentViewの高さ
ツールバーってcontentViewに入ってるんだっけ?入ってないよね?
<> 名称未設定<>sage<>2005/04/13(水) 12:05:51 ID:no+DdJtG<> >423
上手くいかないです。。。
差分を取ると、titlebar + toolbarの高さが取れるけど、
MaxSizeには titlebar + contentViewの値が必要だから、
titlebarのサイズを取得するには・・・どうすればいいんでしょうか? <> 名称未設定<>sage<>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を指定。 <> 名称未設定<>sage<>2005/04/14(木) 12:39:33 ID:PcxJTHZY<> Xcode2になれば、マニュアルやらドキュメントはローカライズも含めてもう少し充実するかな? <> 名称未設定<>sage<>2005/04/14(木) 12:41:45 ID:GmeSsDVk<> >ローカライズも含めて
ますます追いつかなくなる、に2000点 <> 名称未設定<>sage<>2005/04/15(金) 16:59:00 ID:A5txCAMv<> >>428
もちろん、はらたいらさんに、2000点 <> 名称未設定<>sage<>2005/04/17(日) 23:03:29 ID:W29Uv4MF<> >> 427
英語を勉強しる <> 名称未設定<><>2005/04/24(日) 01:08:05 ID:HoG74g/x<> はじめまして。まちゃぽこと申します。
Carbonでコーディングする場合、
複雑な範囲の塗りつぶしやクリッピングは、
リージョンというものを使いますよね。
APIはPaintRgnやClipRgnとか、引数にリージョンデータを
指定して、呼び出しをしますよね。

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

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

どなたか教えていただけると幸いです。
よろしくお願いいたします。
<> 名称未設定<>sage<>2005/04/24(日) 02:31:00 ID:hrbhW4ta<> NSBezierPath <> 名称未設定<>sage<>2005/04/25(月) 11:37:19 ID:08IrRys/<> NSBezierPathは、集合演算が欲しいな。 <> 名称未設定<>sage<>2005/04/25(月) 17:22:56 ID:4/tw/1c3<> NSBezierPath、遅い・・。 <> 名称未設定<>sage<>2005/04/25(月) 18:40:38 ID:YRjP9eH6<> >431
Carbon の遺産があるなら素直に Carbon でやるのが吉。
NSQuickDrawView を使えば GrafPort が簡単に取れるよ。 <> 名称未設定<>sage<>2005/04/25(月) 22:06:17 ID:rMzUNH1Q<> >>433
そう言えばCocoaでベジェ曲線のブール演算とかするライブラリって無いのかな。
libart周辺にはありそうな気もするけど。 <> 名称未設定<>sage<>2005/04/26(火) 11:36:48 ID:eIfcIJzR<> >>436
ベジェ同士のプール演算の他に、他のベジェや点との包含判定も欲しいし、現在のペンとキャップとジョインの描画結果(輪郭)をベジェで取りだすAPIも欲しい。
後者は、外部ライブラリだとムリかな。 <> 名称未設定<>sage<>2005/04/26(火) 13:08:15 ID:ZBsHnmEk<> QuickDrawViewはプリントが出来ないっ。ディスプレイに表示だけなら
いいけどさ。
<> 名称未設定<>sage<>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 扱いにならなければ無理だけど。 <> 名称未設定<>sage<>2005/04/26(火) 13:46:30 ID:d+rSviRD<> >>437
QuickDrawGXだと簡単にできた。CoreGraphicsは足りない機能が
まだたくさんある。
>>438
一旦PICTを経由して描画すれば良い。PICTからPDFへの変換は簡
単だからプリントはPDFベースで行なう。 <> 名称未設定<>sage<>2005/04/26(火) 19:08:07 ID:DmrYPtJv<> あるメソッドで作ったNSString *hogeの値を別のメソッドでも使いたいんですけど、
これってどうしたらいいんでしょう? ヘッダファイルでインスタンス変数として
書いておくらしいのはわかったんですが、具体的な方法がわからないです。

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

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

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

Hoge.h
@interface Hoge : NSObject
{
NSString *hoge;
}
<> 名称未設定<>sage<>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する必要はない、というのはあるけど。
そういう意味だよね?
<> 441<>sage<>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が出力されるようにしたかっただけです。
和訳を読みながらもう少し勉強してみます。 <> 名称未設定<>sage<>2005/04/27(水) 19:28:21 ID:e2sTkaPZ<> ver.4 だったらわかるけど略さないなら version 4 が正しいのではないか、と思った <> 名称未設定<>sage<>2005/04/27(水) 19:29:03 ID:E4eLAmei<> - (void)hogeMethodA:(NSString *)hogehoge
{
[hoge release];
hoge = [hogehoge retain];
} <> 441<>sage<>2005/04/27(水) 20:20:39 ID:faDuKesr<> >>449
それは出来なかった筈……と思ったら、出来ました。
テストしてたクラスとは別のクラスで試したら出来ました。
これが原因だったのか?? 兎も角ありがとうございました。 <> 名称未設定<>sage<>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];
}
} <> 446<>sage<>2005/04/27(水) 21:50:48 ID:L14tcPq4<> >>450
>449は典型的な悪い例だね。少なくとも一般的な使い方では。
言い方は悪いけど、メモリ関係の所をしっかり読んでおいた方がいいと言った
のは、まさにこういうのを避けるため。

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

- (void)hogeMethodA:(NSString *)hogehoge
{
 [hogehoge retain];
 [hoge release];
 hoge=hogehoge;
}
<> 名称未設定<>sage<>2005/04/29(金) 00:15:08 ID:19WrYXab<> >>451
3行目の
[hoge autorelease];
はnilか否かの判定必要ですよね?
if ( hoge != nil ) [hoge autorelease]; <> 名称未設定<>sage<>2005/04/29(金) 00:17:51 ID:Dq2J8aPS<> nil はどんなメッセージが来てもスルーするから
判定は不要なんじゃないか。 <> 名称未設定<>sage<>2005/04/29(金) 00:31:17 ID:19WrYXab<> 初めて知りました>nilスルー
ならば納得です <> 名称未設定<>sage<>2005/04/29(金) 01:09:46 ID:Ds+f6iuI<> nilをreleaseしようとしたら落ちないか? <> 名称未設定<><>2005/04/29(金) 01:18:20 ID:5n3TLzDE<>
ファイルの作成日を変更する方法ってCocoaで可能なんでしょうか?
NSFileManager の changeFileAttributes:atPath:
では、「変更日」は変更できても「作成日」は変更できないみたいですし。
CarbonAPIを呼ぶしかないんでしょうかねぇ… <> 415<>sage<>2005/04/29(金) 01:39:09 ID:MMsJsC97<> >>457
落ちない。
deallocされたオブジェクトにreleaseメッセージを送ると落ちる(ことがある)。 <> 458<><>2005/04/29(金) 03:03:08 ID:5n3TLzDE<> 出来たっぽいです。
すみません。 <> 名称未設定<>sage<>2005/04/29(金) 09:57:11 ID:O0Ar3QXv<> >>459
それで悩んだ事がある。nilに送っても無視されるって言ったじゃないかーって。
まぁよく考えたらnilじゃないんだけど <> 名称未設定<>sage<>2005/04/29(金) 10:09:46 ID:BbSjylit<> ポインタが指しているメモリブロックが有効なオブジェクトかどうかを調べる方法は無いみたいだから
deallocした(つもりでいる)ポインタはいちいち=nil;しておくととりあえず安全 <> 名称未設定<>sage<>2005/04/29(金) 15:35:59 ID:XPqrcbfb<> Xcode2はどんな感じ? <> 名称未設定<>sage<>2005/04/29(金) 18:13:10 ID:Ds+f6iuI<> インスコするの忘れてた <> 名称未設定<>sage<>2005/04/29(金) 22:17:02 ID:zEpiS3/Q<> すいません質問させて下さい。
NSWindowControllerのinitWithWindowNibNameで作ったウインドウに
NSImageViewをつけてるのですが、これら(ウインドウとImageView)の
オブジェクト(メモリ?)を解放させる方法がわからないのです。

closeでウインドウを閉じてからならImageViewのImageもこちらから
release出来るようなのですが、クローズボックスを押してウインドウを
閉じたらウインドウとウインドウが含むオブジェクトを全て解放する、
といったような動作は出来ないのでしょうか? <> 名称未設定<>sage<>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 される。 <> 466<>sage<>2005/04/30(土) 01:00:20 ID:iCkfgaHm<> >> _subviews (NSMutableArray)
これは嘘だけど、こっちの方が分かりやすいだろうからね。 <> 名称未設定<>sage<>2005/04/30(土) 01:07:58 ID:K5Yumgyi<> - (void)setReleasedWhenClosed:(BOOL)flag;
を YES にしときゃ良いってことかね。 <> 名称未設定<>sage<>2005/04/30(土) 02:12:39 ID:87JSBF39<> IBにNSLevelIndicator(.mac容量風)やらNSTokenField(Mailの宛先風)が追加されてるね。 <> 465<>sage<>2005/04/30(土) 19:01:57 ID:/tuMHHcH<> >>466-468
レスありがとうございました。
御陰でなんとか解放する事が出来たようです。 <> 名称未設定<>sage<>2005/04/30(土) 20:44:47 ID:87JSBF39<> CoreDataとMetaData Importerのdoc読んでたら頭痛くなってきた。 <> 名称未設定<>sage<>2005/05/01(日) 11:16:19 ID:M0Znzs2F<> MetaData周りは楽しそうだな。
でもTigerは新PowerBookまでおあずけな俺。 <> 名称未設定<>sage<>2005/05/01(日) 13:47:07 ID:rk7FUsuk<> Core Dataとmetadataの扱いって連携できるみたいなこと書いてなかったっけ?
やりやすいってだけの話なのかな。 <> 名称未設定<>sage<>2005/05/02(月) 00:07:07 ID:GkFAPdde<> ここに書いて良いのか迷いながら書きます。
TigerになってPackage Makerもバージョンアップしましたね。
普通にパッケージを作るとライセンス表示の所から英語表記になるのですが、
みなさんはどの様に対処されていますか? <> 名称未設定<>sage<>2005/05/02(月) 01:27:03 ID:4j8ZAVEI<> NSLevelIndicatiorのratingスタイル激しく使えねえ。なんでこんな気持ち悪い挙動なんだ。
NSDatePickerはスタイル変えるとiCal左側のミニカレンダーそのままのものが使える。
使う予定ないけどちょっといい。 <> 名称未設定<>sage<>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日たっても
かえってこない...どうすりゃ動くんだ。 <> 476<>sage<>2005/05/06(金) 10:10:31 ID:HBW/IKJA<>
4亀で来た。Apple仕事遅すぎ。あっちは平日だろ。 <> 名称未設定<>sage<>2005/05/06(金) 17:45:04 ID:+jFXCesU<> 初歩的な質問ですがお願いします。
NSTableViewの中のセルを編集してenterキーを押すと次のセル、次のセルと編集モードのフォーカスが移って行きます。
これをとめる方法はありませんか。 <> 名称未設定<>sage<>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;
}
}
を実装でいけそうな気がする。試したことないけど。

<> 名称未設定<>sage<>2005/05/06(金) 20:42:23 ID:UKY8l2E4<> 間違った
× if (selector == @selector(insertNewline:)) {
○ if (command == @selector(insertNewline:)) {
<> 名称未設定<>sage<>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];
  }
} <> 名称未設定<>sage<>2005/05/06(金) 21:22:56 ID:bXjsuOtv<> あ、コードの一行目に入ってるセミコロンは消して <> 名称未設定<>sage<>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 が押されても次のフィールドには移行しない。 <> 名称未設定<>sage<>2005/05/06(金) 22:25:14 ID:+jFXCesU<> みなさまレスありがとうございます。
インターフェイスビルだーでちょこちょこといじればできるのかなと思っていたのですが
かなりいろいろといじらなくてはいけないようで驚きです。
ひとつづつ勉強しながら使わせていただきます。

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

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

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

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

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

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

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

8番目の項目に使うなと書いてあるね
著作権については何も触れていないけど <> 名称未設定<>sage<>2005/05/08(日) 21:44:29 ID:XMPDDloi<> それは「ユーザーを混乱させるからそのまま流用するのはよせよ」という意味だろ。
書類のアイコンを作ったりするときに空の文書のアイコンをベースにしても問題はないし。
※この問題ないってのは法的な意味じゃなくソフト作家が使うくらいなら通常容認されてるという意味 <> 名称未設定<>sage<>2005/05/08(日) 23:10:19 ID:PHeyU/T8<> >>495
>それは「ユーザーを混乱させるからそのまま流用するのはよせよ」という意味だろ。
そうだよ
>>492は書類アイコンを作りたいわけじゃないみたいだからね <> 名称未設定<>sage<>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なんだよな。 <> 名称未設定<>sage<>2005/05/09(月) 20:19:31 ID:qrBz7TH5<> Spotlight importerで検索結果画面の特別な分類を作るにはどうしたらいいんだろ。
(書類、メールメッセージ、イベントとTo DO、みたいな分類) <> 名称未設定<>sage<>2005/05/09(月) 20:24:47 ID:/8izHliD<> >>498
Schema.xmlに新しい分類を追加して、GetMetadataForFile()で
attributesに突っ込んでやる <> 名称未設定<>sage<>2005/05/09(月) 20:26:00 ID:/8izHliD<> あ、ごめん、書類の種類の事か
それだったら俺も知りたい
誰か教えて <> 名称未設定<>sage<>2005/05/10(火) 20:44:37 ID:i28sCzEf<> NSTableViewでセルを選択しているときにコマンド+Cを押すと、BEEP音がなってしまいます。
コマンド+Cを押したときに選択しているセルをコピーするようにするには、どうするといいのでしょう?
TableViewのサブクラスを作ってperformKeyEquivalentをオーバーライドするような感じでいいんでしょうか?

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

お陰で正しい道を歩めそうです、ありがdでした。 <> 名称未設定<>sage<>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は、ルーチン抜けたら破棄されてよいの
だけど、 

確実に手で破棄すべきなのかな?どうすればいい?
<> 名称未設定<>sage<>2005/05/12(木) 00:10:29 ID:zAwt8Uqa<> 相互変換できるなら自分で retainCount を数えてみればいい。 <> 名称未設定<>sage<>2005/05/12(木) 01:05:35 ID:nEgSiXbE<> まったく検証してないけど、autoreleaseされると思う。
キャストしただけでCFRetainされたりしたら気持ち悪すぎ。 <> 504<>sage<>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) <> 名称未設定<>sage<>2005/05/12(木) 07:37:18 ID:xmCvXO/N<> >>507
>AutoReleaseなやつを手でreleaseしたらクラッシュ?
そりゃクラッシュするよ
手でreleaseした時点で解放されたオブジェクトをAutoreleasePoolがさらに解放しようとするんだから <> 名称未設定<>sage<>2005/05/12(木) 09:40:40 ID:Gq5N/zaB<> AppleがObjective-CにGCを導入しようとしてるらしい。

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

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

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

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

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

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

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

ちなみにTigerからは
stringWithContentsOfFile:encoding:error:
とかいうのが増えてるね <> 名称未設定<>sage<>2005/05/13(金) 22:10:36 ID:HKHhSaS1<> というか stringWithContentsOfFile: は deprecated になりましたな。 <> 名称未設定<>sage<>2005/05/13(金) 22:20:48 ID:DWCzW2AC<> お、ほんとだ、見落としてた
当面はNSData経由がベターかな <> 名称未設定<>sage<>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]){
//処理
}

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

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

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

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

しかし、display呼ばなかったらイベントループが終わるまで変更が反映されないのか。覚えとこ〆(゚▽゚*) <> 名称未設定<>sage<>2005/05/22(日) 19:49:28 ID:7zRntq9O<> それだと固まるのは直らないような希ガス <> 名称未設定<>sage<>2005/05/22(日) 20:00:54 ID:RUm9rWYW<> >>545
基本的に全部そうだと思う
setImage:とか <> 名称未設定<>sage<>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呼ばなくてもいいのはなぜだろう。 <> 名称未設定<>sage<>2005/05/22(日) 20:24:47 ID:j48V2VhB<> 追記

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

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

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

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

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

毎度どもです。 <> 名称未設定<>sage<>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];すると。 <> 名称未設定<>sage<>2005/05/24(火) 02:10:12 ID:+SiAvWxv<> インターバルってゼロを指定していいんですか? <> 名称未設定<>sage<>2005/05/24(火) 02:13:59 ID:cAk+DdOo<> 人にきくまえに先ずはドキュメントをよみましょう。 <> 若葉マーク<><>2005/05/26(木) 08:10:15 ID:8b78RQfH<> 「Happy Macintosh Developing Time 」を、xcode1.5でお勉強中です。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

マウスやコンテキストメニュー関連で、妙なユーティリティを
インストールしてやしませんか? <> 名称未設定<>sage<>2005/05/27(金) 23:59:58 ID:L3bjC4cY<> >>568
Interface Builder の環境設定で、Editingの「Lock all connections」の
チェックは切れてるか? <> 566<>sage<>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 だけに問題が発生する状況というのがよく分からんので最終手段といっても効果の程はどうだろう。 <> 名称未設定<>sage<>2005/05/29(日) 15:15:31 ID:PEbgzBdf<> NSTextViewのBackgroundColorを透明にするにはどうしたらいいですか?
IBでOpacityを0にするとIB上では透明になるんですが
ビルドすると真っ黒になってしまいます。 <> 確証なし<>sage<>2005/05/29(日) 16:02:48 ID:cILgul7g<> isOpaqueで何かえしてる?
サブクラス化してYES返すようにしたらだめだろうか? <> 582<>sage<>2005/05/29(日) 16:13:27 ID:cILgul7g<> NOかもしれん・・・
Opqqueって不透明、だな <> 名称未設定<>sage<>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

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

ドキュメントを読む限りではsetDrawsBackground:で変更できるはずなんですけど。 <> 585<>sage<>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 だし。 <> 名称未設定<>sage<>2005/05/29(日) 22:58:38 ID:X3+diVTw<> >>588
IBで作ってるみたいだからinitをオーバーライドしてもダメでは? <> 566<>sage<>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
<> 590<>sage<>2005/05/30(月) 01:34:55 ID:rh2q+A0O<> メールの文中をおおまかにダイジェストすると、
IB のコントローラは nib を保存するときには IB 上の情報を使って archive されて保存される (encodeWithCoder:)。で、プログラムが実行されるときには unarchive されるので initWithCoder: が使われる。
たぶん IB で Window とかに Drop したときに initWithFrame: が使われているんだろう。

# NSTextField で実際に試したわけじゃないですが、NSOpenGLView にカスタムクラスを指定したときは確かに initWithCoder: が呼ばれました。 <> 590<>sage<>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
}

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

結果報告

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

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



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

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

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

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

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

マックのプログラマが少ないとかボヤくより先にやる事あるでしょ。 <> 名称未設定<>sage<>2005/05/31(火) 03:56:09 ID:QuVSK0s0<> あちこちの掲示板のことなんかどうでもいいよ
話題に出されても何ら面白みがない <> 名称未設定<>sage<>2005/05/31(火) 11:13:47 ID:O/Htw6hf<> マルチだってわかってんなら最初に指摘しとけ <> 名称未設定<><>2005/05/31(火) 21:05:12 ID:7sHY0re7<> NSXMLParser を使っています。
これで丸数字などのいわゆる機種依存文字の入った XML ファイルを読み込むと
アプリがクラッシュしてしまいます。
encoding="shift-jis" や encoding="euc-jp" で必ずクラッシュします。
これを回避する方法はないでしょうか。
<> 名称未設定<>sage<>2005/05/31(火) 21:49:21 ID:DE4OfkaE<> パネルウインドウで、前はIBからタイトルバーをボタンオンオフで切り替えできたけど、
Tigerは出来なくなった? <> 名称未設定<>sage<>2005/05/31(火) 21:49:56 ID:DE4OfkaE<> >>607
訂正
タイトルバーの位置をボタンオンオフで上と横切り替えできたけど <> 名称未設定<>sage<>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. <> 名称未設定<>sage<>2005/06/02(木) 01:09:28 ID:jJXefM8H<> NSProgressIndicatorを使ってファイルコピーの進捗を表示してるんだけど、
一瞬で終わった場合、バーが満タンになる前に終了してしまいます。

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

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

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

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

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

普通のmain.mです。
どっかでおかしなことやってるってことなんですかね? <> 名称未設定<>sage<>2005/06/03(金) 12:08:16 ID:CneB4aAe<> >>621
Xcode1.2ぐらいの問題じゃなかったっけ?
無視してもいいし、気になるなら
  (const char**)argv
とかしとけばいい。
DeveloperTools最新にすれば出なくなったはず。 <> 619<><>2005/06/03(金) 12:48:48 ID:mdifTZXg<> Xcodeはタイガーに付いていた2.0です。
でもソースは古いバージョンで作成しました。 <> 619<><>2005/06/03(金) 12:51:35 ID:mdifTZXg<> でも無視することにしました
どうもありがとうございました。 <> 名称未設定<>sage<>2005/06/07(火) 03:12:33 ID:Uj71mhZo<> Cocoaはびっくり!!!
ホントに再コンパイルだけで大丈夫? <> 名称未設定<><>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
<> 名称未設定<>sage<>2005/06/07(火) 11:11:22 ID:x3On/PoM<> 長文書く前に IB を隅から隅まで探してみよう。 <> 名称未設定<>sage<>2005/06/07(火) 13:11:37 ID:lkP+VnYs<> シフトとアップルキーとiを押してインスペクタ表示させて
enableで目的達成かな? <> 名称未設定<>sage<>2005/06/07(火) 13:19:43 ID:C8fP4LT5<> visible at launch time <> 名称未設定<>age<>2005/06/07(火) 13:43:08 ID:PZXHGsMj<> Intel版MacOSXでもCocoaでアプリケーションつくれるんだろうな?

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

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

ノートタイプにはPowerPC G5は載りっこなかったわけだし。 <> 名称未設定<>sage<>2005/06/07(火) 14:33:35 ID:bjquDwGR<> OC=>C#になったりして <> 名称未設定<>sage<>2005/06/07(火) 14:40:18 ID:QYcijSsv<> CPUが変わっただけで開発言語まで変わるわけないだろ。 <> 名称未設定<>sage<>2005/06/07(火) 14:46:33 ID:sd3uGvkI<> >>633
Windowsが今のX窓と同じ気軽さで動作するにはもう少し時間が必要だろうけどな。 <> 名称未設定<>sage<>2005/06/07(火) 15:03:33 ID:EuijbslM<> >>636
メモ帳程度なら今でも(ry..... <> 名称未設定<>sage<>2005/06/07(火) 21:10:16 ID:cwOdR+f+ P2@ 218.177.208.63(YahooBB218177208063.bbtec.net)<> >>634
そーなったらいいのにな〜♪ <> 625<>sage<>2005/06/08(水) 00:52:25 ID:1K11YB8S<> >>627, 628, 629
ありがとございますた。解決しました。
精進します。 <> 名称未設定<>sage<>2005/06/08(水) 17:03:46 ID:YvSsftIJ<> NSEventのtimestampはイベントが起こった時の起動してからの秒数(NSTimeInterval)のようですが、
現在の起動してからの秒数はどっかにありますか? <> 名称未設定<>sage<>2005/06/08(水) 17:13:50 ID:xXFoKkeS<> [[NSApp currentEvent] timestamp] かなぁ <> 名称未設定<>sage<>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 <> 名称未設定<>sage<>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;
}

全然違ってたらゴメン <> 名称未設定<>sage<>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が○以上だったら無視、とかすれば良いですが)

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

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

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

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

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

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

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

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



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

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

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

って実際は問題にならないかもしれないけど、複数のアーキテクチャで
テストしなきゃならないのは辛いよ(*´・ω・)(・ω・`*)ネー <> 名称未設定<>sage<>2005/06/11(土) 15:21:09 ID:Jx8KguBk<> ネットワークにバイナリ垂れ流すような産廃業者のようなヤツはネットアプリ作るなよ。 <> 名称未設定<>sage<>2005/06/11(土) 15:25:13 ID:5zW+Oyz3<> ぽかーん <> 名称未設定<>sage<>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. <> 名称未設定<>sage<>2005/06/11(土) 16:15:14 ID:Jx8KguBk<> >>680
バイナリを出す時は、きちんとゴミ袋に包んで中身が漏れないようにして出しましょう♪ <> 名称未設定<>sage<>2005/06/11(土) 16:26:22 ID:rcIEd1tx<> 何だこの実のない <> 名称未設定<>sage<>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の方が早い気がする
気のせい? <> 名称未設定<>sage<>2005/06/16(木) 21:47:50 ID:DAHCbBgz<> NSTableViewでdeleteキーを押したら選択されている行を削除する、という動作を実現するためには
delegateかdataSourceで実装するべきメソッドがあるのでしょうか?
この程度のことでサブクラス化なんてするはずないだろうし・・・ <> 名称未設定<>sage<>2005/06/16(木) 22:00:43 ID:AeEJ4SAV<> 漏れは
[tableView selectedRow];
で列を出してdataSourceの該当行を消して
[tableView reloadData];
した気がする
<> 名称未設定<>sage<>2005/06/16(木) 22:20:59 ID:MgWekGvj<> そうじゃなくて、delegateやdatasourceにそれ用のメソッドが用意されてるのかって話。
結論としては、ないだろうけど。 <> 名称未設定<>sage<>2005/06/16(木) 22:36:15 ID:PoSlz3Gl<> 最初は大変でもサブクラスに作っておけば使いまわしが聞くから、後々楽になると思うよ
コントローラとかに書いちゃうと後で必要になったときにいちいち探し出してコピペしなくちゃいけないから
結構面倒だったりする
後からサブクラス化するのも時間を損した気分になるしね <> 名称未設定<>sage<>2005/06/16(木) 22:39:03 ID:AeEJ4SAV<> そこらへんはリファレンス見ればわかるしょ? <> 名称未設定<>sage<>2005/06/16(木) 23:10:32 ID:9yRuhygO<> >>684
Responderの仕組みを理解していれば答えは自力で導けるはず。
NSResponderとかについて調べてみよう。 <> 名称未設定<>sage<>2005/06/17(金) 01:01:36 ID:n5sUrjrt<> NSTextFieldのcopyやpasteに割り込むにはどうしたらいいんでしょう?
余裕かと思ってたんですが、やってみたらappのdelegateやviewのdelegateでもダメ。
サブクラスでオーバーライドしても無反応でした。 <> 名称未設定<>sage<>2005/06/17(金) 02:00:40 ID:HV9R48fR<> >>690
俺もEditableがNOの場合にペーストできるようにしたかったけど分かんなかった。 <> 名称未設定<>sage<>2005/06/17(金) 02:12:42 ID:n5sUrjrt<> EditableがNOだったらそもそもファーストレスポンダーが乗らないから
ペーストできるわけないがな(´・ω・`)

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

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

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

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

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

まだこういう人っていたんだ?
Classicはともかく、Carbonなくなったら大抵のソフトは動かないよ
CarbonはMac OS 9からの移行用APIではない <> 名称未設定<>sage<>2005/06/18(土) 23:47:09 ID:wDCPaQ5j<> ところでFinderって完全にCocoaになったんだっけ?それともまだ?
<> 名称未設定<>sage<>2005/06/19(日) 02:41:05 ID:g2VpStDc<> Info.plist見るとNSPrincipalClassがないね <> 名称未設定<>sage<>2005/06/19(日) 09:49:16 ID:cHrfvbSm<> >>697
>Carbonなくなったら大抵のソフトは動かないよ
今はそーでもないよ <> 名称未設定<>sage<>2005/06/19(日) 10:18:53 ID:3GtQkCPR<> 互換部分のCarbonと基幹部分のCarbonをごっちゃにして語る奴がいるけど、無意味 <> 名称未設定<>sage<>2005/06/19(日) 10:25:36 ID:HWNTSri6<> Carbonは冗長でイヤだな。
<> 名称未設定<>sage<>2005/06/19(日) 11:51:58 ID:VQrQF4SA<> CarbonとCoreFoundationの区別について <> 名称未設定<>sage<>2005/06/19(日) 15:47:53 ID:0w1POvEn<> >>699 から多分Finderもそうなんだろうけど、NSApplication使ってない、
WaitNextEventやRunApplicationEventLoop使ってるアプリはまだ結構あるでしょ。
OS 9の頃からあるアプリはほとんどそうなんじゃない? <> 名称未設定<>sage<>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 <> 名称未設定<>sage<>2005/06/19(日) 21:55:14 ID:4WTupJu+<> よくわからんがCarbonは無くならないという結論でいいのかな
そんなに刺々しいレスをしないでくれ <> 名称未設定<>sage<>2005/06/24(金) 22:40:08 ID:i2pwDBDb<> NS保守 <> 名称未設定<>sage<>2005/06/25(土) 00:56:39 ID:+Y96h/+D<> [thisThread retain]; <> 名称未設定<>sage<>2005/06/25(土) 01:41:01 ID:7cYAvp8h<> while(1)
{
 [thisThread addRes:[NS2chRes resWithString:@"Nullpo"]];
} <> 名称未設定<>sage<>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"];
} <> 名称未設定<>sage<>2005/06/26(日) 03:57:49 ID:PnY2KwNa<> on mouseUp
put "ガッ"
end mouseUp <> 名称未設定<>sage<>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 <> 名称未設定<>sage<>2005/06/26(日) 13:05:34 ID:15aNwBjp<> 妙な流れを打ち切ってすみませんが質問です。
NSControlに複数のサイズの異なるセルを張り付けたいのですが、
この用途だとNSMatrixが使えませんよね。

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

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

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

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

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

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

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

仕方ないから勝手にFondationフレームワークを追加して#include <Foundation/Foundation.h>
を入れたらこのエラーは出なくなったけど、こんどはリンカの段階で
Undefined symbols: _GetMetadataForFile
とかでるようになった。どうすりゃいいの?  orz <> 名称未設定<>sage<>2005/07/06(水) 00:13:12 ID:AhsYu3ZC<> リンクすべきフレームワークが抜けてるんじゃないの?
<> 名称未設定<>sage<>2005/07/06(水) 23:55:16 ID:or/BrvdA<> 拡張子は .m になってる? <> 730<>sage<>2005/07/07(木) 00:11:13 ID:QtDC3cX0<> >>732
お、すごい。.cを.mに変えたら一発で通っちゃった。
なんで気がつかなかったんだ!
ありがとう。助かったyo! <> 名称未設定<>sage<>2005/07/09(土) 11:54:57 ID:VNovAsMv<> ADCのメーリングリストを見ていたら、Cocoa-Javaの
JavaBridgeは、MacOSX 10.4までしか提供しないよう
な事が書いてあった(英語力はありませんが)んだけど
これが本当ならモチベーション下がるなぁ。
かなりJavaのライブラリに依存した形で作ったので、
Objcへの移行も大変すぎるし・・・はぁ。 <> 名称未設定<>age<>2005/07/09(土) 12:06:59 ID:VNovAsMv<> そういえば、
Java-Swingに移行した方が楽だけど、
日本語関係のトラブルがなぁ・・・はぁ。 <> 名称未設定<>sage<>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の開発者離れが心配だ。 <> 名称未設定<>sage<>2005/07/09(土) 19:58:02 ID:E1c87c/G<> >>736
え、心配するほどCocoa-Javaやってる人いるの?
<> 名称未設定<>sage<>2005/07/09(土) 20:29:59 ID:qPdjmoYw<> >>736
「10.5以降でCocoaに追加される機能はCocoa-Javaには提供されない」
ってことで、Cocoa-Java自体が無くなるわけじゃないみたいね。
とりあえずのところは。

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

mouseEntered:と一緒に使いたいのですが、
こっちはaddTrackingRectがNSViewにしか用意されていないようで。。 <> 名称未設定<>sage<>2005/08/09(火) 00:10:11 ID:pB8o6jeO<> >>846
何をしようとしてるのか分からないので、うまく答えられませんが
NSWindowのsetAcceptsMouseMovedEventsで
NSViewにイベント来ますよ。 <> 名称未設定<>sage<>2005/08/11(木) 02:35:09 ID:CD/IXRxf<> Objective-C/Cocoaの連載 キタ━━━━(゚∀゚)━━━━!!
http://pcweb.mycom.co.jp/column/objc/001/
著者はmkino氏 <> 名称未設定<>sage<>2005/08/11(木) 03:25:06 ID:fV0cGYcd<> お〜 mkino 氏! 早速 class-dump インストールしました <> 名称未設定<><>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];
<> 名称未設定<>sage<>2005/08/11(木) 23:19:16 ID:z0CLJFPW<> >>850
NSPathUtilities.h
[NSString fileSystemRepresentation]

かな? <> 名称未設定<><>2005/08/12(金) 01:02:02 ID:PqrnpewI<> >>851
それだと通らないようです。 <> 名称未設定<>sage<>2005/08/12(金) 01:27:18 ID:p1j26+7N<> >>852
%@ を %s に変えた? <> 名称未設定<><>2005/08/12(金) 01:51:18 ID:PqrnpewI<> >>852
最初stringWithCStringでやりましたが%sの方でも試しましたところ駄目でした。 <> 名称未設定<>sage<>2005/08/12(金) 19:39:48 ID:7Jf/36Fn<> >>850
IPCやオブジェクトモデルを理解する良い機会
遠回りで遅くて不安定な方法は止めて、自分でAppleEventを作って送りませう。 <> 名称未設定<>sage<>2005/08/12(金) 23:38:13 ID:mp3y7lXe<> >>850
stringWithUTF8Stringを使ってみ。
<> 名称未設定<>sage<>2005/08/12(金) 23:59:18 ID:onYnoqwP<> @""の中の%sはデフォルトのエンコーディング(日本ならSJIS)が期待されてるから
stringWithCString: でいいのでは <> 名称未設定<>sage<>2005/08/13(土) 11:11:26 ID:Yw0P+hAZ<> stringWithCStringはdeprecated。
<> 名称未設定<>sage<>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
と書いたほうが失敗しなかったように記憶してる。細かい理由は忘れた。 <> 名称未設定<>sage<>2005/08/13(土) 18:01:07 ID:UEiwJjwn<> 851さんが書かれているように、フルパスの入ったNSStringのインスタンスに
fileSystemRepresentationを送る(結果はC文字列)のが作法としては正しいような
気がします。 <> 名称未設定<>sage<>2005/08/13(土) 18:06:29 ID:s2wVO25x<> >>855が書いて通りした方が早いし確実だと思いますが。 <> 名称未設定<>sage<>2005/08/13(土) 23:17:22 ID:UjgvpMOj<> むむぅ さっぱり分からん。これ応用したら
http://www.pyehouse.com/lynn/termopen.php
を日本語のフォルダも通るようにできるよなぁ
といってみるテスト。 <> 350<><>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を作って送りませう。
この方法がベストでした。みなさんどうもありがとうございます。 <> cocoan<>age<>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」とは何をさしているのかが分かりません。
また、エラーログからソース上でどこが問題の箇所かどうか
見つける方法と言うのはあるのでしょうか?
基本的な質問で済みませんが、ご存知の方、ご教授よろしくお願いいたします。 <> 名称未設定<>sage<>2005/08/16(火) 15:58:46 ID:AlBpiXOk<> >>864
pid

ちゃんと macosx-dev-jp ML で謝っとけよ。 <> cocoan<>age<>2005/08/16(火) 16:52:34 ID:618uCiBf<> すんません>>865 <> 名称未設定<><>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]を発行するのは良くないのでしょうか?
基本的な事で恐縮ですが宜しくおねがいいたします。 <> 名称未設定<>sage<>2005/08/16(火) 21:58:26 ID:KVd3aTcG<> hoge == NULLであれば問題ないんじゃない?
NULLにはメッセージは送られないそうだし。

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

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

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

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

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

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

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

ともかくいろいろありがとうございました。 <> 名称未設定<>sage<>2005/08/17(水) 03:49:20 ID:Ky4Sb7Ei<> >>877
ttp://www.naotokui.com/prog/archives/2003_11.html
<> 名称未設定<>sage<>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使えって事じゃないですかね。
恐らくですけど。。。 <> 名称未設定<>sage<>2005/08/17(水) 04:57:10 ID:J+xHstm4<> >>880
-drawInRect:fromRect:operation:fraction: <> 名称未設定<><>2005/08/17(水) 14:16:05 ID:2d95EYSf<> 自作Cocoaアプリの簡単なヘルプを書こうかと思っています。
いまのところOSXに付属のスティッキーズのヘルプが簡単そうなのでまねてみようと思います。
しかしスティキーズ.appのパッケージの中にヘルプファイルが置かれていません!

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

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

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

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

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

GJ!!
アスキーの記事か・・・懐かしいね(´ー`)y-~~ <> 名称未設定<><>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

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

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

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

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

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

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

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

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

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

<> 名称未設定<>sage<>2005/08/20(土) 01:30:45 ID:QS0MwUet<> >>901
ここの板のプログラム関連スレを読めばかの本の批評は出てくるけど、
いいという香具師は一人もいない。会社で予約して買ったけど、まったくの
金の無駄だった。
<> 名称未設定<>sage<>2005/08/20(土) 07:55:17 ID:NpsE7JpP<> ちゃんと理解したければ
http://www.amazon.co.jp/exec/obidos/ASIN/4877780688/250-2586378-5591420
をどうにかして手に入れたほうが良い
絶版だけど <> 名称未設定<>sage<>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]で
良さそうなのはわかったのですが・・・。 <> 名称未設定<>sage<>2005/08/20(土) 10:18:36 ID:svxAI1qH<> >>904
getenv(3)
environ(5) <> 904<>sage<>2005/08/20(土) 10:37:50 ID:lnNwyPKp<> なんかそっちの環境変数は別物のような気がするのです・・。
HTTP_COOKIEを取り出したいんですが、それでいけますか? <> 名称未設定<>sage<>2005/08/20(土) 11:02:37 ID:MWbluaXs<> >>906
やってみればいいじゃん。同じだと思うよ。環境変数って普通同じものを
さすので。
<> 907<>sage<>2005/08/20(土) 11:29:45 ID:MWbluaXs<> やってみた所、getenvでそれっぽいのが表示されたよ。
<> 名称未設定<>sage<>2005/08/20(土) 13:59:39 ID:e4OuaAWu<> エラー発生時に例外情報を表示して、
送信を促すダイアログって簡単に作れませんか?
<> 名称未設定<><>2005/08/20(土) 14:14:10 ID:2TwDzMjG<> >>909
それ系のフレームワークがなかったっけ? <> 名称未設定<>sage<>2005/08/20(土) 14:58:30 ID:MWbluaXs<> 今の所Appleの開発環境だけではそういうことはできなかったよね。
サードパーティーのフレームワークを使えばできるらしい。
http://homepage3.nifty.com/kimuraw/misc/crashreporter.html

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

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

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

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

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

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

しかし、2番目とか分かりにくいですね。
<> 名称未設定<>sage<>2005/08/21(日) 00:39:49 ID:1geYDtzF<> HMDTだけで十分。てかほとんどAppleの文献の日本語訳みたいなもんだし。
だいたいの様子をつかんでから、英語のドキュメント嫁ばよろしい。
あとサンプルコードのコメント。別に辞書使うなとか言ってないし。 <> 名称未設定<>sage<>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/

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

オブジェクト指向言語自体初めての俺には無理があった。
GUIもX11のXlibしか使ったこと無かったし。まあそれは関係ないか。 <> 名称未設定<>sage<>2005/08/21(日) 00:56:09 ID:ma/2DmMB<> HMDT以外のどれか一冊で十分だろ <> 名称未設定<>sage<>2005/08/21(日) 01:09:22 ID:4ugMOVPZ<> >>924
私はCも全く知らんかったけどHMDT読んでcocoaアプリ作れるようになりましたよ。
perlで遊んでたことはあったけど。 <> 名称未設定<>sage<>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も出ないけど、
やっぱちゃんと本買って勉強した方がいいのかなあと思ってます。 <> 916<>sage<>2005/08/21(日) 01:52:15 ID:4hUxD1L8<> 皆さん色々とアドバイス有り難うございます。
本と、教えて頂いたpageを参考に色々と試行錯誤して
みます。
また困った時は宜しくです。 <> 名称未設定<>sage<>2005/08/21(日) 09:38:11 ID:D2kguxJ1<> >>923
あえてどれかを選ぶとすると、俺はヒレガス本(一番上)かな
基本的にどれも似たり寄ったりなので入門の用途ではどれか一冊読めば十分でしょ <> 名称未設定<>sage<>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対応版がもしあれば素人向けには良さそうなんですが

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

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

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

>>937

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

>>938

情報ありがとうございます。
このようなサンプルもあるんですね。
でもこのサンプルCarbonなんですね。
Cocoaを始めたばかりなので、解読できるか分からないですが、
参考にします。
<> 名称未設定<>sage<>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
<> 名称未設定<>sage<>2005/08/23(火) 01:27:38 ID:HwfSfuTC<> NSCellのtrackMouse:inRect:ofView:untilMouseUp:
と関連メソッド達が絡んでそうとか言ってみるテスト。 <> 名称未設定<>sage<>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 プログラミングガイド <> 名称未設定<><>2005/08/23(火) 19:02:02 ID:l7VsLHQx<> IM(ことえり)で、文字変換中がわかるAPIとかありますか? <> 名称未設定<>sage<>2005/08/23(火) 19:39:24 ID:yCFAJHTa<> マルチすんな <> 名称未設定<><>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 <> 名称未設定<><>2005/08/23(火) 20:54:58 ID:5vWw4tP9<> 最近tigerを入れて、
Happy Machintosh Developping Timeの記述をなぞってみてるところなんですが、
interface builderでコネクション張ろうとコントロールドラッグしようとしても、
ペイン内の他のアイコンが選択されるだけで、対象のオブジェクトとコネクトできないんです。

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

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

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

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

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

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

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

あまり良く分からないので、もうすこし調べます。
すいませんでした。
<> 名称未設定<>sage<>2005/08/24(水) 01:33:57 ID:WdFFC9He<> 一体どんな用途なんだか <> 名称未設定<>sage<>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桁の精度、
これでもギリギリ扱える。
この位はプログラミングの常識 <> 名称未設定<>sage<>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兆かどうかはしらん。
<> 963<>sage<>2005/08/24(水) 01:39:51 ID:VhSzwlzD<> あっ、10.3.9ね <> 956<>sage<>2005/08/24(水) 02:09:55 ID:DY7Npnzi<> >>962
>>963

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

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

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

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

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

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

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

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

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

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

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

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