所以我试图在目标功能中打开Keychain共享,我收到了以下错误消息:
将钥匙串共享功能添加到您的App ID.
当我打开钥匙串共享时,权利文件会自动更改.任何人都知道如何解决第二步?我没有在会员中心找到App ID的Keychain Sharing选项.
谢谢!
我正在研究实际上是collectionView的日历的可访问性。每当点击一个单元格时,都会通过调用重新加载collectionView
[self.collectionView reloadData];
Run Code Online (Sandbox Code Playgroud)
问题是,如果voiceOver正在运行,则在轻按该单元格之后,焦点将移至另一个位置,因为该单元格已在其他位置重用。
无论如何,有什么要保持焦点在reloadData之后的位置?谢谢!
我目前正在研究项目的可访问性,这里是放入自定义UITableViewCell的UICollectionView.此CollectionView具有数十个单元格,这些单元格以多行而不是一行排列.
它引发了一个问题,当你打开voiceOver并通过向左或向右滑动在collectionViewCells之间移动焦点时,系统认为你在tableViewCells之间滑动,因为collectionView在tableView中,而tableView的contentOffSet将根据tableViewCell大小,而不是collectionViewCell大小.
CollectionView已经放在tableView中了,我认为我不能改变它.所以只是想知道以前有没有人遇到过这个案例,无论如何都要使collectionView正常访问?
我有一个按钮,当我点击按钮时,会有一个警报.
当我打开画外音并点击按钮时,点击警报确定按钮以关闭警报,焦点将返回到页面/后退按钮的顶部,而不是触发警报的按钮.
我正在使用这段代码将焦点移回按钮:
let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, button)
})
Run Code Online (Sandbox Code Playgroud)
问题是在您关闭警报后,焦点将返回到顶部并首先读取标签,然后返回按钮.重点不是直接按钮,看起来很蹩脚.
我检查了一些Apple应用程序,我发现在它们解除警报后,焦点将在警报弹出之前返回到上一个元素.知道怎么做到这一点?谢谢!
我是iOS Accessibility领域的新手,我正在尝试使用此UIAccessibilityNotification功能,但它无法正常运行。我用一个按钮编写了一个非常简单的应用程序,当您单击该按钮时,将调用此方法。
- (IBAction)announce:(id)sender {
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,
@"Speak this out loud");
}
Run Code Online (Sandbox Code Playgroud)
以我的理解,当您单击按钮时,画外音将显示为“大声说出来”,但它正在读取按钮名称。谁能告诉我代码有什么问题,或者为什么我用错了代码?
为了清楚起见,我双击了按钮。当您单击该按钮时,它将读取按钮名称和特征(“ button”),而当您双击该按钮时,它将仅读取按钮名称。
感谢@ChrisCM的回答。延迟发布使其生效。
@IBAction func announce(sender: AnyObject) {
let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(2 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, "Item added to cart")
})
}
Run Code Online (Sandbox Code Playgroud)
但是,仍然存在一个小问题,即单击“添加到购物车”按钮后,画外音将定位到第一个可访问项,即后退按钮,并读取“后退按钮”,然后读取announcementNotification参数。
我有一个带有 PickerView 的 inputView 的 UITextfield。我想实现当用户双击 UITextfield 时,pickerView 以模态显示,就像默认一样,并且可访问性的焦点从文本字段更改为 pickerView。这就是我现在的做法:
func textFieldDidBeginEditing(textField: UITextField) {
let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.65 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.quantityPicker)})
}
Run Code Online (Sandbox Code Playgroud)
当用户双击 textField 并在 0.65 秒延迟后发送 UIAccessibilityLayoutChangedNotification 以专注于 pickerView 时,此委托只会被调用。
那么问题是:
我在这里使用了一个延迟来等待pickerView弹出动画完成,但如果我能知道pickerView动画在某处完成并放置会更好
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.quantityPicker)
那里。那么是否有任何委托或其他简单的方法可以知道 pickerView 已准备好使用?
我有一个textField,其中pickerView作为inputView.
现在,当我有画外音并选择textField时,画外音将读取:"数量:3(textField的内容)",然后是"textField",然后是"Double tap to edit".
无论如何都要让画外音只是阅读内容并跳过下面的"textField.双击编辑"?
我试图给textField另一个UIAccessibilityTraits/Hints,但它们不起作用.
谢谢!
根据这篇文章,范围循环应该比python中的while循环更快,但请看下面的代码.它仅用于测试数字是否为素数,如果n不是素数则返回除数.
import time
def isPrimeWhile(n):
i = 2
while(i <= n/2+1):
if(n%i == 0):
return i
i += 1
return n
def isPrimeRange(n):
for i in range(2,n/2+1):
if(n%i == 0):
return i
return n
n = 353591872901
start = time.time()
isPrimeWhile(n)
print("%s while seconds"%(time.time() - start))
start = time.time()
isPrimeRange(n)
print("%s range seconds"%(time.time() - start))
Run Code Online (Sandbox Code Playgroud)
运行代码,你会发现while循环比range循环快得多.我猜测范围(0,aLargeNumber)需要很长时间才能运行.但为什么在上面提到的上一篇文章中,范围方法要快得多?任何答案?