トップページココアな掲示版

ココアな掲示版

新しい書き込み
タイトル
なまえ
メール
メッセージ

・ 「タイトル」「なまえ」「メール」の入力はオプションです。

・ クッキーをONにしていると、書き込んだ「なまえ」と「メール」が保存されます。

・ メッセージは、内容によって不正と判断されることがあります。

・ <code>を除いて、タグは使えません。

<code>
void main(String[] args) {
    System.out.println("hello, world.");
}
</code>

void main(String[] args) {
    System.out.println("hello, world.");
}

Re:Re:変換中の文字列をマウスクリックに反応させる方法

Writed by ikm at 2/14/08 11:08 AM

こんにちは。
早速の御対応、ありがとうございます :-)


Re:変換中の文字列をマウスクリックに反応させる方法

Writed by しましま at 2/12/08 8:31 PM

ikmさん、こんばんは。

記事の方は、元にもどしておきました。
記事へのリンクは消したけど、記事そのものを消したつもりはなかったのに、なぜか消えてました^^;


変換中の文字列をマウスクリックに反応させる方法

Writed by ikm at 2/12/08 10:57 AM

こんにちは、ikmといいます。
以前自分のブログの方で、NSTextInputまわりで変換中の文字列をマウスクリックに反応させる方法について情報をいただいたのですが、それが書かれた文章はすでに削除されているようです ;-(
もしよろしければ、その方法を教えていただけないでしょうか。
メールでその文章を送っていただいてもかまいません。
よろしくお願いいたします。

件のブログの記事:
http://aerial.st/archive/2006/04/24/position-control-of-conversion-list

当該文章の旧URL:
http://www.stripe-net.jp/cocoa/documents/application3/application3-8.html


Re:Objective-c の変数の参照取得方法について

Writed by しましま at 2/6/08 7:31 PM

> と、言う事はコピーばかり走るObjective-Cはちと処理的にガンガン回すと遅そうということですか。。。

値渡しがコピーになるのは、Objective-CではなくC言語の仕様です。
Objective-Cのメソッドは内部では、C言語の関数として実装されているので、この辺りの部分においては、言語の差がでません。

ただ、NSRectはたかが16バイトの容量しかないので、いくらコピーが発生しても、パフォーマンスに影響は出ません。

ちなみに、NSRectについては、空っぽのRectを表す、NSZeroRectという定数が定義されています。
また、そのRectが空っぽかどうかをテストするBOOL NSIsEmptyRect(NSRect)という関数も用意されていますので、それらを使ってうまくやってください。


Re:Objective-c の変数の参照取得方法について

Writed by pon_000 at 2/6/08 1:18 AM

しましまさん回答ありがとうございます。

値として取れるのはなんとなくわかっていたのですが、関数の引数がnilだったら。。。というような処理にしたいと思い、参照はどのようにするのかと思っていたら。。。
毎回コピーが走るという事なんですね。そういう仕様なんですね。

と、言う事はコピーばかり走るObjective-Cはちと処理的にガンガン回すと遅そうということですか。。。

その辺はObjective-C++と仲良くやっていこうかと思います。

ご回答ありがとうございました。


Re:Objective-c の変数の参照取得方法について

Writed by しましま at 2/5/08 10:13 PM

こんばんは。

まず、NSRectはオブジェクトじゃなくて、ただの構造体です。
Cocoaでは、ポインタとしてではなく、値として直接取り扱います。

NSViewのframeメソッドは、NSRectを値渡しで返してきます。値渡しの場合、値のコピーが返されるので、そのコピーのアドレスを参照しても無意味です。
この辺は、c/c++でも同じはずで、コンパイル時に警告が出ると思います。


Objective-c の変数の参照取得方法について

Writed by pon_000 at 2/5/08 12:19 AM

おしえてgoo!に投稿したものです。

あちらよりこちらの方がobjective-cに関して適切かと思い投稿させていただきました。

c/c++は結構使っているのですがObjective-Cは全くの初心者です。
メンバ変数とかの参照(アドレス)を取得するにはどうすれば良いのでしょうか?
下記のようなサンプルを書いてもコンパイルエラーになってしまいます。Objective-C ってCと記述が同じだと思っているので「&」演算子でアドレスが取れると思っていたのですが。。。

@interface AAA : NSView
{
}
-(void) test:(NSRect *)rct;
@end

@implementation AAA
-(void) test:(NSRect *)rct
{
NSRect *p = nil;
if (nil == rct)
p = &[self frame]; <- フレームのアドレスをポインタに入れたい
else
p = rct;
}
@end

以上 宜しくお願い致します。


Re:教えて下さい。初心者です。

Writed by りん at 8/3/06 12:42 AM

しましまさん、こんばんは。

ご返答ありがとうございました。
おっしゃる通りでした。
素直に読んでいれば、ちゃんと出来ていましたね。
早く試してみたくて、先走り過ぎでした。
本当のプログラム初心者なので、出来たときは、ちょっと感動しました。
これからこちらのサイトでいろいろ勉強していきたいと思います。

本当にありがとうございました。


Re:教えて下さい。初心者です。

Writed by しましま at 8/2/06 10:18 PM

りんさん、こんばんは!

ターゲットアクションのコネクションで、「Not Aplicable」が出る件ですが。
たぶん、コネクションの方向を間違えていませんか?
Outletsのコネクションと違って、Target/Actionのコネクションは、計算ボタンが起点でCalculatorオブジェクトが終点になります。

その辺をもう一度確認してみてください。


教えて下さい。初心者です。

Writed by りん at 7/31/06 11:37 PM

プログラムかなり初心者です。

こちらのCocoa-Java Applicationの超低計算電卓をやってみようと試みたのですが、どうしてもうまくいきません。

「インスペクタでtarget/Actionタブのなかのcalculate()を選択し、Connectボタンを押します。」

というところで、target/actionに「calculate()」が、表示されてこないのです。

毎回、「Not Aplicable」と表示されたままです。

ちなみにこちらのソースもダウンロードして、確かめても、同じ状態になります。

先に進めず困っています。

何が悪いのか教えて頂けるとありがたいのですが。。。

かなりど素人な質問で大変恐縮しておりますが、宜しくお願い致します。

ちなみにこちらの環境は、下記のようになっています。

Xcode2.3
Interface Builder Version 2.5.4 (446.1)
PowerBook G4 15" 1.5GHz


Copyright(C)2001-2009 STRIPE-NET. All Right Reserved.