问题标签 [addobserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1465 浏览

ios - 通过 Apple Watch 更新应用内容的简单方法

当我按下 AppleWatch 应用程序上的按钮时,我找不到一种简单的方法来更新我的 iPhone 应用程序中的视图。

我用 NSUserDefaults Observer 尝试过,如下所示:

iPhone App Viewcontroller(在 ViewDidLoad() 内):

在 Watchkit Extensions InterfaceController 中,我使用以下代码添加了一个带有按钮的 IBAction:

但是当我按下按钮时,什么也没有发生!如果我在我的 iPhone ViewController 中设置一个对象,它可以工作,但如果它是通过应用程序更新的!有人能帮我吗?

0 投票
2 回答
524 浏览

swift - 另一种方式(使用选择器)来设置通知观察者

我已经使用以下代码成功设置了通知观察者:

但是,我对上面的编码风格不感兴趣,因为我可能会输入或复制/粘贴错误的方法名称action:

所以我尝试以addObserver不同的方式:NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector(/* What to pass in here??? */), name: notificationString, object: nil),我不知道要传递什么selector: Selector(...)

XCode 提示我:Selector(action(notification: NSNotification),但这是非法的。

在 Objective C 中,我可以在这个阶段轻松地选择一个方法,但我不知道如何在 Swift 中。

你试过这种语法吗?让我知道。

谢谢,

0 投票
1 回答
71 浏览

ios - addObserver 中的对象不同

我有以下代码:

并且该方法使用了 self 的一个属性:

有时(并非总是)处理程序中的 self 对象是不同的对象(并且是导致崩溃的未初始化对象)

我似乎无法弄清楚我做错了什么,以及如何避免这种情况。对象是否"self"被复制?

0 投票
2 回答
3858 浏览

xcode - AVPlayer 状态:消息已收到但未处理

我对观察者和 Swift/ObjC 很陌生,我正在尝试使用 Apple 文档中所说的来监控 AVPlayer 状态,但是当我尝试添加时,我得到的只是“收到消息但未处理”错误消息观察者。

如果我取消注册观察者,错误就会消失,但如果我在observeValueForKeyPath函数中添加println("test") ,则不会发生任何事情。

关于如何以简单的方式监控状态的任何想法?

0 投票
1 回答
323 浏览

swift - 为什么这个 [Swift] NSObject.addObserver 注册没有按预期调用 func observeValueForKeyPath() ?

有问题的代码如下。[我希望]这个问题在上面的问题中得到了完整的概述。提前致谢。MJB。

0 投票
1 回答
693 浏览

swift - Swift:哪个类拥有 NSObject.addObserver( ... options: .New ) 中使用的 .New 属性?

Swift 中 KVO 的当前最佳实践在这篇 SO 帖子中有很好的记录,看起来像这样:

我想通过将其封装在ObserversManager(例如)类中来简化内存管理问题,因此我可以执行以下操作:

问题是上面的func 观察者抛出了以下编译时错误,我目前无法修复,因为官方文档没有详细说明答案。 Could not find member 'New'

0 投票
1 回答
34 浏览

ios - 为什么要添加一个观察者来立即删除它

我最近查看了一些快速代码,发现了这一点:添加观察者,然后立即将其删除。这背后的逻辑是什么?

0 投票
0 回答
132 浏览

c++ - .cpp 文件中的 UIView 观察者

如何在 .cpp 文件中向 UIView 框架添加观察者

像这样(目标-c): [view addObserver:videoAd forKeyPath:@"frame" options:0 context:NULL];

0 投票
1 回答
142 浏览

ios - IOS 轮换通知不起作用

我正在使用以下代码尝试 NSNotificationCenter:

快照

但不打印任何东西,从不进入旋转功能,有什么想法吗?多谢

0 投票
2 回答
2808 浏览

ios - 带有对象参数的特定文本字段的 Swift 2 addObserver

据我了解object,该方法的参数addObserver是您要从中接收通知的对象。大多数时候我认为它是nil(我认为这是因为所有对象都需要指定类型的通知)。在我的特殊情况下,我在屏幕顶部和屏幕底部有一个文本字段,我希望视图仅在用户点击底部文本字段时向上移动,而不是顶部。所以我调用以下方法viewWillAppear

和选择keyboardWillShow:keyboardWillHide:调用重新定位视图框架的方法。我尝试将object参数保留为,nil但这会从两个文本字段接收通知。我尝试将object参数设置为self.bottomTextField(如上所示),但没有收到来自任一文本字段的通知。我的问题是双重的。首先,我addObserver是否正确理解了该方法(尤其是object参数),其次,为什么它没有从self.bottomTextField. 谢谢!

解决方案: 我知道这不是我所问的确切问题的解决方案,但我最终在仅单击底部文本字段时使视图向上移动的操作如下:

然后在keyboardWillShow:我的方法中:

希望这会有所帮助!