Ios 并非所有iPhone都检测到设备按钮按下

Ios 并非所有iPhone都检测到设备按钮按下,ios,objective-c,Ios,Objective C,我正在使用JPSVolumeButtonHandler检测iPhone音量按钮的按下。我注意到iOS 13上出现了一些奇怪的行为,即当检测到音量增大时,大部分时间都没有检测到向下按钮,尤其是在快速连续按压时。 JPSVolumeButtonHandler使用KVO来监视此卷的卷更改: [self.session addObserver:self forKeyPath:sessionVolumeKeyPath options:(NSKe

我正在使用
JPSVolumeButtonHandler
检测iPhone音量按钮的按下。我注意到iOS 13上出现了一些奇怪的行为,即当检测到音量增大时,大部分时间都没有检测到向下按钮,尤其是在快速连续按压时。
JPSVolumeButtonHandler
使用
KVO
来监视此卷的卷更改:

 [self.session addObserver:self
               forKeyPath:sessionVolumeKeyPath
               options:(NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew)
               context:sessionContext];
但是按下向下按钮时,
observeValueForKeyPath:…
似乎没有被调用


如何改进音量下降按钮的检测?

说它与
KVO
兼容。我假设
AVAudioSession
本身无法正确发送某些事件。调用
-[NSObject addObserver:forKeyPath:options:context]
时是否可以尝试删除选项?另外,当我有一个使用
MPVolumeView
的项目时,当我想要隐藏卷视图时,它无法正常工作。似乎
AVAudioSession
尝试检测视图层次结构中是否存在任何未隐藏的
MPVolumeView
实例。我必须将
alpha
设置为
CGFloatMin
而不是设置
ishiden=true
alpha=0
[[MPVolumeView alloc]initWithFrame:CGRectMake(MAXFLOAT,MAXFLOAT,0,0)];所以它不应该是可视的。。。我无法从该调用中删除选项,没有它们它无法编译否,您使用
MPVolumeView
所做的操作已经足够远了,并将
高度和
宽度设置为零。iOS可以检测到它并将其标记为不可见,并且不会告诉任何按钮事件。您可能需要在视图显示某些内容时放置什么(如
CGRectMake(50100200,5)
),但要设置
alpha=cgloat\u MIN+0.01
。当UIKit检测到它可见时,它将在视觉上不可见