11

我需要一些有关特定复制和粘贴代码的帮助来帮助我运行它。我希望用户单击 NSButton,它将启动 safari 或他们的默认网络浏览器。

我在表单上添加了一个 NSButton,然后添加了声明和实现,但仍然无法正常工作。为什么它不工作?提前致谢...

 --------.h file--------
//  Copyright (c) 2013 Company. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#import "HttpRequest.h"
#import "JSON.h"
#import "ChimpKit.h"
#define IS_REGISTERED @"IS_REGISTERED"
#define NORMAL_0 0
#define MAILCHIMP_1 1

@protocol RegistrationWindowDelegate

-(void) registrationDidFinished;

@end

@interface RegistrationWindowController : NSWindowController<HttpRequestDelegate,ChimpKitDelegate,NSWindowDelegate> {


    IBOutlet NSButton *pushApp1; //Newly added NSButton for opening Web URL

    IBOutlet NSWindow *registerWindow;
    IBOutlet NSWindow *privacyWindow;
    IBOutlet NSTextField *firstNameField, *lastNameField, *emailField, *verfilyEmailField;
    IBOutlet NSPopUpButton *countryPopUpBtn;
    IBOutlet NSButton *updateCheckBox, *promotionCheckBox;
    IBOutlet NSMenuItem *registerMenuItem;
    IBOutlet NSProgressIndicator *progressIndicator;
    IBOutlet NSButton *registerSoftware,*registerLater;
    id<RegistrationWindowDelegate> delegate;

}
@property(nonatomic,assign) id<RegistrationWindowDelegate> delegate;
- (id)initForRegistrationServer:(int) registrationServer withDelegate:(id<RegistrationWindowDelegate>) delegate;
+ (BOOL) isRegistered;
- (void) setRegistered:(BOOL)state;
- (void) openWindow:(id) sender;
- (BOOL)isValidEmail:(NSString *)email;
-(void) registerWithNormal;
- (void) registerWithMailChimpForApps;
- (NSArray *)addCountries;

@end

这是我的 .m 文件(我尝试使用在网上找到的代码片段)

--------.m file--------

//  Copyright (c) 2013 Computer. All rights reserved.
//

#import "RegistrationWindowController.h"

@interface RegistrationWindowController ()

@end

int registrationServer;

@implementation RegistrationWindowController
@synthesize delegate;

- (IBAction)pushApp1:(id)sender {

///Found this snippet on the web, but doesnt work
   NSURL *myURL = [NSURL URLWithString:@"http://www.google.com"];
   [[NSWorkspace sharedWorkspace] openURL:myURL];


  ///// Also Found this snippet on the web, but doesnt work
  // NSString *s = [ NSString stringWithFormat:@"http://www.google.com"];
  // [[NSApplication sharedApplication] openURL:[NSURL URLWithString:s]];



    }
4

3 回答 3

30

This should work:

-(IBAction)pushApp1:(id)sender {
    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://stackoverflow.com"]];
}
于 2013-07-05T22:43:22.907 回答
8

Swift 3的代码

@IBAction func pushApp1(_ sender: Any) {
    NSWorkspace.shared().open(URL(string: "http://stackoverflow.com")!)
}
于 2016-11-08T19:24:07.180 回答
1

迅捷5:

@IBAction func gotoSite(_ sender: Any) {

    if let url = URL(string: OFFICIAL_SITE_URL) {
        NSWorkspace.shared.open(url)
    }

}
于 2019-04-04T16:33:55.937 回答