问题标签 [nsnotificationcenter]

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 投票
1 回答
18734 浏览

ios - UIKeyboardWillShowNotification & UIKeyboardDidShowNotification 报错键盘高度

下面的代码(对不起,长度)在 iOS 4.3(也许其他版本)下显示了一个奇怪的行为。在此示例中,有 3 个UITextFields 具有三个不同大小的键盘。如果您开始编辑一个文本字段,然后触摸“返回”关闭键盘,则UIKeyboardWillShowNotification每次UIKeyboardDidShowNotification使用UIKeyboardFrameBeginUserInfoKey.

见下文:

- (void) keyboardWillShowNotification:(NSNotification *)aNotification

- (void) keyboardDidShowNotification:(NSNotification *)aNotification

请注意,这是预期的行为。

意外行为是,如果您开始编辑文本字段,则会报告(预期)第一个键盘的大小。当您触摸第二个文本字段(不触摸返回)时,将报告(意外)第一个键盘的大小而不是第二个键盘的大小。当您触摸第三个文本字段(不触摸返回)时,将报告(意外)第二个键盘大小的大小,而不是第三个的大小。第二次到第 n 次,它似乎在报告前一个键盘的大小,而不是将显示的大小。

在我发送错误报告之前,我只是想确保我没有过度查看任何内容。

仅供参考,在移动视图时尝试做正确的事情(使用UIKeyboardWillShowNotification或获取键盘的大小)时,我发现了这一点UIKeyboardDidShowNotificationUIKeyboardFrameBeginUserInfoKey以便可以看到本应被键盘遮挡的文本字段。参考:

存在键盘时如何使 UITextField 向上移动?

iOS 库:iOS 的文本、Web 和编辑编程指南 --> 管理键盘

iOS 库:iOS 的滚动视图编程指南 --> 创建和配置滚动视图

错误VC.h

错误VC.m

0 投票
2 回答
1960 浏览

iphone - UIDeviceOrientationDidChangeNotification 多次调用,加速度计略有变化

我在用

对我的 appdelegate 中的某些视图进行更改。

但这会在加速度计的最轻微变化中被调用。任何人都可以提出任何解决方法,以便仅在设备完全旋转时才调用它。谢谢

0 投票
1 回答
778 浏览

ios - 应用程序关闭时的 NSUserDefaultsDidChangeNotification

我正在开发的应用程序将用户信息存储在设置包中,以便与网络服务同步。我能够使用 NSUserDefaultsDidChangeNotification 通知成功检测到更改,但仅在应用程序处于后台时。如果我完全关闭应用程序并再次启动它不会收到该通知。我知道系统在后台合并应用程序的通知,但是在应用程序最初启动时有什么方法可以接收?如果没有,有没有好的解决方法?谢谢

0 投票
1 回答
2365 浏览

iphone - 多次调用 UIApplicationDidEnterBackgroundNotification

我正在使用:

每当用户将应用程序切换到其他应用程序时停止下载。但是多次调用通知会导致不良行为(多次取消相同的下载......)

这是正常的吗?我认为一旦有人单击主页按钮,通知只会发送一次。但现在情况并非如此,有时它会给出 6 UIApplicationDidEnterBackgroundNotification !(有时 2 次,有时 4 次,1 次……)

0 投票
4 回答
4431 浏览

ios - 为什么 EAAccessoryDidConnectNotification 会出现两次?

我有一个类来管理来自和去往 iPad 外部附件的消息。在初始化中,我有以下代码:

在 dealloc 我有

出于某种原因,当我将外部配件连接到 iPad 时,accessoryDidConnect: 会触发,然后是accessoryDidDisconnect:,然后是accessoryDidConnect:

我无法弄清楚为什么我会获得额外的连接和断开连接。有任何想法吗?

0 投票
1 回答
237 浏览

iphone - NSNotificationCenter 和 UITabBar 应用程序

这是我的问题:

我有一个应用程序。它基于四个 UITabBar 视图。在视图 3 上发生了一些事情,通知正在发送到 NSNotificationCenter。视图 1 中有一个观察者,它等待所述通知首先从本地文件加载一些数据(这些数据在发布通知之前保存到文件中),然后更新 UITableView -> [TableView reloaddata]。所以...我将 nslogs 添加到观察者和通知中,它们会触发,但是当我切换到视图 1 时 UITableView 没有更新(当我重新启动应用程序时,一切都很好)。

会出什么问题?

顺便提一句。视图 1 的更新应该在视图 3 当前存在时发生。

任何帮助表示赞赏!

0 投票
1 回答
1939 浏览

ios4 - NSNotificationCenter 带参数

我正在实现一个基于音频的应用程序。我正在使用两个 AVPlayer 播放两种不同的声音。一旦声音播放,我需要做不同的动作。为此,我使用了 NSNotifications。但我的问题是我无法找到与哪个玩家相关的通知。我的通知代码和选择器代码如下,请任何人告诉我我做错了什么。

}

在此先感谢,钱德拉。

0 投票
3 回答
1546 浏览

iphone - NSNotificationCenter:我怎么知道是什么发布了通知?

我在 A 类中有一个名为 Test 的 NSNotification 观察者。观察者调用一个方法,checker:

然后我在 B 类和 C 类中有两个帖子,都发给名为 Test 的观察者

我希望能够知道哪个帖子被发送给观察者并增加一个计数器以在 check 方法中可用,例如:

我已经看到使用用户信息的建议,但我不太确定如何;是在 B/C 类中实例化并作为 int 或字典等传递的计数器对象

非常感谢任何帮助谢谢

0 投票
1 回答
376 浏览

objective-c - 为 NSDocument 的 readFromData::: 获取正确的窗口

我已经在我的 Cocoa App 中成功实现了一个 NSDocument 类,它也能够正确保存数据。但是在打开文件时我遇到了问题。

这是我的基本设置:

NSDocument MyFile ==xib 文件=> MyFile.xib

NSObject FileClass 作为处理类

FileClass 是一个压缩/解压缩文件的类,并连接到 MyFile.xib 中窗口的文本字段。保存是通过默认的 NSNotificationCenter 完成的。数据需要在此类中处理,因为它不包含原始 NSString。

假设我有三个需要打开的文档 我有三个 NSDocument 实例,它们现在通过 NSNotificationsCenter 发送它们的数据。因为我有三个 NSDocument,所以我有三个窗口和三个 FileClass 实例。现在,如果正确的 FileClass 接收到数据只是运气,因为我无法过滤接收到的数据是否针对此窗口提出。一个随机的 FileClass 现在处理该文件并设置其关联的文本视图的文本。因此,窗口 1 可以显示被认为显示在窗口 3 中的数据。

数据流:

NSDocument => readFromData => NSNotificationCenter => 随机 FileClass => 关联的 TextView。

缩小范围:如何将数据路由到其正确的窗口以及如何/在何处将 FileClass 包含在此构造中?

提前致谢!

保罗

0 投票
1 回答
2646 浏览

iphone - 想要在触摸外部时关闭 UIView 中的 UIPickerView

我试图通过仅在视图外部触摸 UIView 来关闭 UIPickerView。我看过类似这样的其他帖子,它解释了如何在键盘外按下时使用 NotificationCenter 来关闭 UIKeyboard。我想知道是否有类似的方法可以用 UIPickerView 做同样的事情。现在我在 UIActionSheet 中使用了一个完成按钮,但我喜欢让用户选择在视图外部单击的想法。另外,我知道使用“隐形按钮”的想法,它的工作方式大致相同,我只是想看看是否有更优雅的解决方案。
提前致谢。