我想更改我的Phonegap/Cordova构建的原生iOS应用程序中出现的所有键盘的背景颜色,如下所示:

我当然彻底搜索了这个,主要找到了2个相关的答案.回答者在这里说,Objective-C代码可以被添加到的PhoneGap项目的AppDelegate.m文件上所显示此页面.我找到了AppDelegate.m文件,但似乎无法弄清楚如何在所有文本字段上将键盘外观设置为UIKeyboardAppearanceAlert .回答者提供的代码示例:
mytextfield.keyboardAppearance = UIKeyboardAppearanceAlert;
Run Code Online (Sandbox Code Playgroud)
编写基于cordova的应用程序,我无法区分任何文本域ID以连接到上面的示例.Xcode/Cordova中是否有一个文件,其中列出了所有文本域ID,甚至更好:
有没有办法可以通过UIKeyboardAppearanceAlert或类似方法将键盘外观设置为黑暗,适用于所有文本字段并与Cordova兼容?
谢谢
应用程序加载时调用的方法序列是什么,特别是对于这些方法:
我的ViewController.swift
func startTimer() {
timer = NSTimer().scheduleTimerWithTimerInvterval(1.0,target: self,selctor: Selector("couting"),userinfo: nil, repeats: true)
}
func pauseTimer() {
timer.invalidate()
println("pausing timer")
}
Run Code Online (Sandbox Code Playgroud)
这是appDelegate.swift
func applicateWillResignActive(application: UIApplication) {
viewController().pauseTimer()
println("closing app")
}
Run Code Online (Sandbox Code Playgroud)
它是打印暂停计时器和关闭应用程序,但当我再次打开时,我看到它从未暂停.我该怎么做?
我有一个场景,其中应用程序将获得推送通知,并需要在我的应用程序的主屏幕中显示消息,因为我将消息数组保存到我的应用程序委托的用户默认值,一切正常,但在以下条件下它不起作用
如果应用程序处于被杀死状态并且发出通知并且用户通过应用程序图标触发应用程序(而不是来自推送通知)
如果应用程序在后台并且通知来了,用户也通过应用程序图标(不是来自推送消息)进入应用程序
然后我搜索了解决方案,并了解了静音推送通知(用于后台模式),没有别的,所以我需要知道如何通过推送通知处理所有场景,我的appdelegete是
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
if (remoteNotif) {
[self handlePushMessage:remoteNotif];
}
return YES;
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
[self handlePushMessage:userInfo];
}
-(void)handlePushMessage :(NSDictionary*)userInfo{
//method to handle push message
}
Run Code Online (Sandbox Code Playgroud)
提前致谢
我在 Xcode 11 beta 中遇到了一个问题。
问题是我没有window在AppDelegate文件中声明默认变量。
有人面临同样的问题吗?
我正在使用谷歌登录iOS和使用模拟器它工作正常,因为没有安装谷歌应用程序和用户获取,但使用我的iPhone 6设备打开youtube(其中有一些注册帐户)的句柄登录.之后,当回到应用程序代码时,请不要输入此功能:
-(void)signIn:(GIDSignIn *) signIn
didSignInForUser:(GIDGoogleUser *)
user withError:(NSError *) error
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我,我不能使用其他功能登录我必须打电话[[GIDSignIn sharedIstance] signIn],此功能检测是否安装了另一个谷歌应用程序,并自动打开另一个谷歌应用程序或Webview.
阅读文档的UIApplicationDelegate - application:openURL:options
返回:
如果委托成功处理了请求,则为YES;如果尝试打开URL资源失败,则为NO.
返回YESvs NO影响是什么?如果您恰好对应用程序委托进行子类化并且可能想要super处理调用,这只是一种方便吗?返回值似乎不会以UIApplication任何obvoius方式影响自身的行为.
我正在使用一个大约有 7/8 年历史的旧 Xcode 项目,我已将其迁移到 Objective-C 2.0 并支持 ARC。在我开始工作之前,该项目不支持自动布局(这是在发布之前)。我设法清除了在更现代的 Xcode IDE (10.2.1) 中运行它时遇到的许多错误/问题。出于测试目的,我已将此代码实现到AppDelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height)];
[self.window setBackgroundColor:[UIColor redColor]];
self.window.rootViewController = [UIViewController new];
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
这出于某种原因给了我这个:

这是当我在 iPhone X、iPhone XR 或 iPhone XS Max 上运行时的结果,看起来屏幕的顶部和底部边缘(安全区域)没有被拾取。当我调试视图层次结构时,它们也没有被选中,它只显示红色空间?当我将此代码放入新项目时,它工作正常并填满所有空间。我想知道因为这是一个旧项目,所以可能有一个构建设置限制了UIWindow扩展以允许支持新设备?
另外作为旁注,我确保该UIWindow对象没有在其他地方被操纵。
我试图通过单击按钮来显示可拆卸的 NSPopover,但我被卡住了。我遵循了如何显示 NSPopover 但它们都围绕菜单栏应用程序。
我的 AppDelegate 看起来像这样
final class AppDelegate: NSObject, NSApplicationDelegate {
var popover: NSPopover!
func applicationDidFinishLaunching(_ notification: Notification) {
let popover = NSPopover()
let popoverView = PopoverView()
popover.contentSize = NSSize(width: 300, height: 200)
popover.contentViewController = NSHostingController(rootView: popoverView)
popover.behavior = .transient
self.popover = popover
}
func togglePopover(_ sender: AnyObject?) {
self.popover.show(relativeTo: (sender?.bounds)!, of: sender as! NSView, preferredEdge: NSRectEdge.minY)
}
}
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序SS中添加了位置背景模式
但该应用程序仍然无法使用启动选项键启动
UIApplication.LaunchOptionsKey.location
这是我的应用程序委托代码,
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
addItem(name: "LaunchOptions: \(String(describing: launchOptions))")
if let launchOptions = launchOptions {
if launchOptions[UIApplication.LaunchOptionsKey.location] != nil {
startLocationMonitoring()
}
}
print("LaunchOptions: \(String(describing: launchOptions))")
return true
}
func startLocationMonitoring() {
locationManager?.delegate = nil
locationManager = nil
locationManager = CLLocationManager()
locationManager?.delegate = self
locationManager?.desiredAccuracy = kCLLocationAccuracyBestForNavigation
locationManager?.distanceFilter = 1.0 // meters
locationManager?.allowsBackgroundLocationUpdates = true
locationManager?.activityType = .otherNavigation
locationManager?.pausesLocationUpdatesAutomatically = false …Run Code Online (Sandbox Code Playgroud)