我正在使用UISearchBar将文本输入与数据库中的条目进行匹配,并在UITableView中键入匹配的结果给用户.
一切都很好,但是,我找不到改变搜索栏键盘的返回键类型的方法.默认情况下,它会使用按钮替换标准return键Search.因为我正在进行实时搜索,因为用户输入,我不需要这个按钮并将其保持在那里并且不活动已经引发了一些可用性问题.
试图解决方案
我可以使用该setKeyboard:UIKeyboardType方法设置键盘,但是这似乎没有覆盖用键替换返回键(在标准键盘上)的默认设置,Search并且它不允许访问更改此return键.
我考虑过使用a UITextField,让我returnKeyType通过UITextInputTraits协议访问该属性.然而,我的问题在于我正在实现这个UISearchBarDelegate方法searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText,我将失去它UITextField.
有没有办法可以保持搜索栏的委托方法的功能,同时合法访问键盘的返回键?
事实上,我正在实现的几乎所有屏幕都可以在Apple的Clock应用程序中找到
屏幕截图:

因此,非常感谢任何有关清洁解决方案的帮助.请注意return右下方的键而不是默认Search按钮'.
我有一个非常简单的 iOS Core Audio 应用程序,其结构如下:
Remote I/O Unit Input Bus --> Render Callback --> Remote I/O Unit Output Bus
由远程 I/O 输出总线调用的渲染回调函数通过调用AudioUnitRender()远程 I/O 输入总线从输入硬件中提取样本。然后它处理/影响这些样本,写入提供的样本AudioBufferList*并返回,导致通过输出硬件播放受影响的样本。一切正常。
我的问题是我如何知道或计算出以下的准确时间:
一个AudioTimeStamp结构体被传递到渲染回调中,并带有有效的mHostTime, mSampleTime&mRateScalar值。我不清楚这个时间戳到底反映了什么。该文件指出:
inTimeStamp 与此音频单元渲染调用关联的时间戳。
这听起来像它所代表的渲染被调用时,却怎么也该关联(如果有的话),以在其中输入样本的时间进行拍摄和输出样本将被呈现?
一些在线资源谈到使用mach_absolute_time()或CACurrentMediaTime()计算当前主机时间,但是我似乎无法再次建立从当前主机时间到过去或未来主机时间的连接。
以下引用来自 Apple 邮件列表线程的三个时间戳,包括用于过去输入数据和未来输出数据的单独时间戳。这正是我正在寻找的,但是我相信这是在 OS X 上运行并使用 AUHAL I/O。我找不到在 iOS 上检索这些时间戳的方法。
因此,CoreAudio 的工作方式是 I/O proc 触发并为您提供 3 个时间戳:(1) 是输入数据的时间戳 - 如果有的话。这将始终至少是过去的缓冲区大小 (2) 是现在的时间戳 - 当 …
我正在使用耳机对iOS上的音频信号进行一些精确的测量。
音频信号的差异很大,具体取决于耳机是插入设备的3.5毫米耳机插孔还是连接到闪电连接器(我相信闪电包括其自己的ADC / DAC单元)。
因此,我正在寻找一种方法来确定将耳机插入哪个端口(闪电或耳机插孔)。
在检查两个连接的当前路由输出端口的类型时,它们都返回AVAudioSessionPortHeadphones,这并不能完全满足我的要求。
for (AVAudioSessionPortDescription *outputPort in [currentRoute outputs])
{
if ([[outputPort portType] isEqualToString:AVAudioSessionPortHeadphones])
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
有人知道确定AVAudioSessionPortHeadphones连接到哪个端口的方法吗?
谢谢,安迪。