标签: appdelegate

Cocoa:创建并关闭另一个窗口

我正在寻找一个最简单的例子,它显示一个窗口打开另一个窗口,然后关闭它.

我似乎陷入困境的地方是NIB以及如何连接插座.我可以很容易地创建窗口; 关闭它提出了挑战.

任何建议非常感谢!

我在下面附上我的代码.我认为我想要做的很简单,但它不起作用.感谢弗朗西斯,我现在可以打开和关闭窗口但是一旦我再次尝试打开它,应用程序崩溃(EXC_BAD_ACCESS).我确定这是因为我对NIB与班级的关系认识不足.在大多数语言中,我只需要实例化窗口的新实例然后关闭它.

我有2个窗户MainMenu.xib.(我更喜欢将窗口放在单独的NIB中,但这似乎会产生其他问题!)AppDelegate有2个出口,窗口(原始)和其他窗口(创建第2个窗口).

第一个窗口有2个按钮:" 打开窗口 "和" 关闭窗口 ",与代码中的2个方法连接.

码:

MyTestAppDelegate.h

#import <Cocoa/Cocoa.h>

@interface MyTestAppDelegate : NSObject <NSApplicationDelegate> {
    NSWindow *window;
    NSWindow *otherWindow;
}

@property (assign) IBOutlet NSWindow *window;
@property (assign) IBOutlet NSWindow *otherWindow;

- (IBAction)openOtherWindow:(id)sender;
- (IBAction)closeOtherWindow:(id)sender;

@end
Run Code Online (Sandbox Code Playgroud)

MyTestAppDelegate.c

#import "MyTestAppDelegate.h"

@implementation MyTestAppDelegate

@synthesize window;
@synthesize otherWindow;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
}

- (IBAction)openOtherWindow:(id)sender
{
    [otherWindow makeKeyAndOrderFront:sender];
}

- (IBAction)closeOtherWindow:(id)sender
{
    [otherWindow close];
}
@end
Run Code Online (Sandbox Code Playgroud)

macos cocoa objective-c nswindow appdelegate

1
推荐指数
1
解决办法
5443
查看次数

handleOpenURL方法.提出modalviewcontroller并传递url信息

我的app delegate中的handleOpenURL方法遇到了一些问题.我有一个应该正常显示的rootviewcontroller,但是当我的应用程序中打开一个文件时,我需要handleOpenURL方法来呈现一个新的viewcontroller并发送url信息.问题是我无法从我的app委托呈现模态视图控制器.此外,当我尝试在我的rootviewcontroller中调用一个方法来呈现我得到的modalviewcontroller时

 Warning: Attempt to present ... whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud)

所以,我想我只是在寻找能够呈现新的模态视图控制器并将url信息传递给该类的解决方案.这是app委托方法.

- (void)handleOpenURL:(NSURL *)url {

}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

iphone xcode delegates appdelegate

1
推荐指数
1
解决办法
1564
查看次数

无法从appdelegate推送viewcontroller

  1. 在我的窗口基础应用程序中,我需要从我的appdelegate导航到editorview,当我点击我的tabbarcontroller的第二项时,它将显示一个带有三个选项的动作表.

  2. actionsheet工作正常,如果从tabbar中选择第二项,它将显示一个操作表.

  3. 但是当我选择行动表的第一个选项时,我需要推送到另一个视图

  4. 我在appdelegate中声明我的动作表.

  5. 我已经实现了actionsheetdelegate

    • (void)actionSheet:(UIActionSheet*)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex

该方法是trigerred,它可以显示我是否做nslog.但它无法推送到我想要的viewcontroller ..这是我的代码:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
    {
        if (buttonIndex == 0)
        {
            DetailViewController *v2 = [[DetailViewController alloc] init];

            NSLog(@"PUSH TRIGER");

            [self.window.rootViewController.navigationController pushViewController:v2 animated:YES];
        }
    }
Run Code Online (Sandbox Code Playgroud)

注意:我已经在我的故事板中嵌入了tabbarcontroller和导航控制器

uiactionsheet pushviewcontroller ios appdelegate

1
推荐指数
1
解决办法
6487
查看次数

用于类消息的接收者'SMClient'是前向声明

我正在尝试将StackMob添加到我的项目中.它表示SMClient在将SDK拖动到项目后创建实例,选中"为...创建组"并添加到目标.我按照这些步骤.

但是,当我创建我的SMClientSMCoreDataStore实例时,它给了我一个错误Receiver 'SMClient' for class message is a forward declaration和相同的错误SMCoreDataStore.这是我的代码:

#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>

@class SMClient;
@class SMCoreDataStore;

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (strong, nonatomic) SMCoreDataStore *coreDataStore;
@property (strong, nonatomic) SMClient *client;

@end
Run Code Online (Sandbox Code Playgroud)

我的一部分.m:

#import "AppDelegate.h"
#import "StackMob.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.client = [[SMClient alloc] initWithAPIVersion:@"0" publicKey:@"YOUR_PUBLIC_KEY"];
    self.coreDataStore …
Run Code Online (Sandbox Code Playgroud)

objective-c forward-declaration ios appdelegate

1
推荐指数
1
解决办法
4369
查看次数

应用启动后的黑屏

我正在设置第一个viewController,它将出现在App Startup上.这是我的AppDelegate.h:

#import "AppDelegate.h"
#import "TutorialController.h" // a simple UIViewController

@implementation AppDelegate

@synthesize window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    window.rootViewController = [[TutorialController alloc] init];

    [window makeKeyAndVisible];

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

它没有提供任何警报,但启动应用程序,在启动画面后,它只显示黑屏.没有那个代码一切正常.我不能在StoryBoard中这样做,因为在解决了这个问题后,我必须添加其他东西......可能出错了什么?谢谢!

已解决:使用followben的回复解决.

viewdidload viewdidappear ios rootview appdelegate

1
推荐指数
1
解决办法
6838
查看次数

保留 Appdelegate

我知道没有必要保留委托,以避免保留循环。我在一次采访中碰巧遇到了这个问题,“如果保留 appDelegate 会怎样?”。我对此没有答案,为了我的知识,在这里寻求答案。谢谢

delegates objective-c ios appdelegate

1
推荐指数
1
解决办法
254
查看次数

想从 appdelegate 调用 ViewController 的方法

我想ViewController在 AppDelegate.m 中调用的方法。我的方法中有 method() 。我Viewcontroller希望在调用 didSelectMethod() 时调用它appdelegate.m。我已经调用了这样的方法。-

ViewController *vc=[[ViewController alloc]init];
[vc method];
Run Code Online (Sandbox Code Playgroud)

方法被调用但与实际方法具有不同的实例。它具有所有nill价值。谁能给我正确的代码,我想要什么。

谢谢贾格维尔·拉纳

methods objective-c uiviewcontroller ios appdelegate

1
推荐指数
1
解决办法
3246
查看次数

如何在iOS中创建AppDelegate共享实例?

我必须创建AppDelegate的sharedInstance并在我的应用程序中使用任何地方.

iphone objective-c ios appdelegate swift

1
推荐指数
1
解决办法
8322
查看次数

FIRMessagingDelegate的消息:didReceiveMessage:未实现 - Firebase 4.1.1 - Swift 3

我将Firebase升级v3到了,v4但是在接收消息方面遇到了一些问题,我收到了此警告:

[Firebase/Messaging] [I-FCM002019] FIRMessaging收到的数据消息,但是FIRMessagingDelegate的消息:didReceiveMessage:未实现

我知道我应该实现这个方法:

public func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage){
    print(remoteMessage.appData)
            //let title = remoteMessage.appData[("data"): {"title"}]
           var title = "New Request"

            for value in remoteMessage.appData{
                if let value = value as?  [AnyHashable:Any]{
                print(value)
                }
            }
            let message = "okay"
            print(message)
             self.showAlertAppDelegate(title: title ,message:message ,buttonTitle:"ok",window:self.window!)
            print(title, message)

}
Run Code Online (Sandbox Code Playgroud)

但是我仍然有警告,所以我应该采取更多行动吗?

firebase appdelegate swift3 firebase-cloud-messaging ios10

1
推荐指数
1
解决办法
2866
查看次数

在Swift中将AppDelegate类声明为'final'是不好的做法吗?

现在,我正在尝试使用Git中的一个名为Insomnia的类来防止设备在充电时锁定.如果你好奇的话,这个项目就在这里.对于示例代码,它让我这样做:

final class AppDelegate: UIResponder, UIApplicationDelegate {
      private let insomnia = Insomnia(mode: .whenCharging)
      //app delegate code
 }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它已声明AppDelegatefinal使得insomnia变量未被释放,这将阻止它工作.但是,我不确定,这是不好的做法宣布我AppDelegatefinal?或者这会导致我的应用程序出现问题吗?如果这是不好的做法,有没有更好的方法来确保insomnia不被解除分配?

ios appdelegate swift

1
推荐指数
1
解决办法
163
查看次数