SafariでGoogleを開きたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Objective-C初心者

SafariでGoogleを開きたい

#1

投稿記事 by Objective-C初心者 » 14年前

Objective-C初心者です。
開発環境はXcode、Macintoshのアプリケーションを作っています。
基本的な質問です。失礼な点があるかと思いますが、よろしくお願いします。

ボタンを押したときに、SafariでGoogleを開きたいです。
外部のアプリケーションを実行するのは、taskらしいというので、Webで見つけたものを継ぎ接ぎしてみたのですが、うまく動きません。

コード:

- (IBAction)show:(id)sender{
	NSString *str = [@"http://www.google.com/"];
	[outputField setStringValue:str];//ここまではうまくいっていて、設定したMultiline Labelに文字列を表示できている。

	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];//Usused variable 'pool'とエラー。
	NSTask *task  = [[NSTask alloc] init];
	
	[task setLaunchPath: @"/bin/sh"];
	[task setArguments: [NSArray arrayWithObjects: str, nil]];
	[task launch];
}
設定したstrのURLをSafari開くには、どのようにしたらよいですか?

あと、ライブラリからもってきたPush Buttonを、ウィンドウのなかでキーボードのEnterを押したときに実行するデフォルトのボタンにしたいです。
これにはどのようにしたらよいでしょう?
アドバイスお願いします。

Objective-C初心者

Re: SafariでGoogleを開きたい

#2

投稿記事 by Objective-C初心者 » 14年前

シェルスクリプトについて調べたところ、ターミナル(bash)からは、
open -a Safari http://www.google.com/
で開けるようです。
poolはなくてもよいということで、

- (IBAction)show:(id)sender{
NSString *str = [@"open -a Safari http://www.google.com/"];
[outputField setStringValue:str];

NSTask *task = [[NSTask alloc] init];
[task setLaunchPath: @"/bin/sh"];
[task setArguments: [NSArray arrayWithObjects: str, nil]];
[task launch];
}

としてみましたが、まだタスクを起動できません。
なにがだめなんでしょうか??

アバター
Justy
副管理人
記事: 122
登録日時: 14年前
住所: 神奈川県

Re: SafariでGoogleを開きたい

#3

投稿記事 by Justy » 14年前

 Cocoaは余りよく知らないのですが、shで開くなら

コード:

    [task setArguments: [NSArray arrayWithObjects:@"-c", str, nil]];
と、 -cをつけてみて下さい。


 あと、デフォルトに設定しているブラウザで開くなら

コード:

    NSURL *url = [NSURL URLWithString:@"http://www.google.com/"];
    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:url]];
なはずです。

Objective-C

Re: SafariでGoogleを開きたい

#4

投稿記事 by Objective-C » 14年前

Justyさんありがとうございました。
-cを追加することでできました。

閉鎖

“C言語何でも質問掲示板” へ戻る