问题标签 [ipados]
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.
ios - 具有清晰背景的模态演示在 iPad 上围绕 View 创建 Box - 问题 iOS 13
我正在使用能够拉下 VC 的模态演示。但是 VC 背景颜色很清晰,所以只有一半的屏幕上有 VC。iPhone 上的一切都很完美,但是当我在 iPad 上运行它或使用 Mac Catalyst 时,它会执行您在下面看到的操作。ViewController 的视图周围有这个框。边缘上的透明背景是否也可以通过 View Controller 后面,所以它没有这个框?匹配VC的背景颜色不起作用,因为随着用户下拉,透明度逐渐改变。
在下图中,您可以看到视图控制器的轮廓。我想知道如何删除该轮廓并使其透明以匹配视图控制器周围的区域。
我正在使用过渡样式:Cover Vertical 和 Presentation:Page sheet。
ios - iOS 屏幕键盘:假设存在硬件键盘,我该如何防止它出现?
我正在为专业的最终用户维护一个传统的 iPad 应用程序。它有一个 UITextField 来接受纯 ASCII 字符串。所有用户都有物理蓝牙键盘,根本不想看到(侵入式)屏幕键盘。我该如何压制它?
控制是否/何时出现屏幕键盘的规则很复杂,并且除非准备好接受 [UITextField] 默认行为,否则难以编写代码。用户不是。2010 年之前,原始编码器编写了一个繁琐的解决方案。如果它曾经奏效,iOS 已经改变以打破它。我欢迎一种强大的 Objective-C 技术,该技术在未来 10 年内不太可能被打破,足够简单,让下一个编码人员能够理解 - 并删除。
我看到几个类似我的问题的答案。大多数都是旧的,而且许多已经被报告坏了。我的问题不是如何检测物理键盘或屏幕键盘的可见性。用户希望设置开关完全抑制屏幕键盘,但仍响应物理键盘。在 viewDidLoad 中一次性检查的 UISwitch 就足够了。会话中可切换的选项会更好。
如何编写最简单的此类选项?
ios - 为什么默认的 UIWindowSceneDelegate 类继承自 UIResponder?
在 iOS 13 中,UIWindowSceneDelegate
对象不在响应者链中(我通过打印响应者链来验证这一点)。但是 Xcode 提供的模板代码使场景委托类继承自UIResponder
. 如果我让场景委托类继承自NSObject
,代码仍然可以编译并运行没有问题。
那么让场景委托类符合的意义UIResponder
何在?
ios - 当用户在切换器中关闭窗口时未调用sceneDidDisconnect(_:)
我在苹果的Supporting Multiple Windows on iPad示例代码中添加sceneDidDisconnect(_:)
了委托方法(可以在 Xcode 文档窗口中下载)。但是当我运行应用程序并打开多个窗口时,关闭任何窗口时都不会调用此方法。我应该做点别的吗?SceneDelegate
ios - iPadOS 键盘 CMD+Z 调用 UndoManager 的撤消选择器两次?
我遇到的问题UndoManager
可能是 iPadOS 错误,但也可能是我的错误。
我有一个简单的测试应用程序。一个按钮执行一个操作,它将 int 增加 1 并向系统注册一个 undo UndoManager
。另一个按钮手动调用undoManager.undo()
,它撤消最后一个操作,直到撤消堆栈上没有更多操作。并且整个应用程序是系统的第一响应者,因此点击也应该触发 undoManager每按 CMD+ZCMD+Z
调用一次。undo()
这是一些代码。
允许成为第一响应者的 UIHostingController 子类:
SceneDelegate,我传入系统撤消管理器的地方:
还有我的 SwiftUI 视图和相关模型:
例如,如果我点击“注册操作”两次,然后点击“手动撤消”三次,输出就是我所期望的 - 状态增加了两次,然后减少了两次,最后一个 undo() 什么也不做,因为撤消堆栈为空:
但是,如果我点击“注册操作”两次,然后点击CMD+Z
iPad 键盘,我希望状态会增加两次,并且只减少一次,一次调用performUndo
,但performUndo
仍然被调用两次:
我是否以某种方式错误地使用了系统 UndoManager,或者这是一个错误?
更新:以上内容适用于 Xcode 11.3.1 和 iPadOS 13.3。使用最新的 Xcode 11.4 beta 2 和 iPadOS 13.4 beta 2,不再发生双重撤销。似乎固定!
arrays - 在循环条件取决于字符串数组大小的 for 循环中从字符串数组中删除元素
我有一个字符串数组,我想根据 indexPath 数组中的值删除元素,该数组是从表格行上的 2 指平移手势生成的。循环重复次数取决于字符串数组的大小,每次循环都会删除相关的字符串数组元素。
下面的代码:
当我要求应用程序删除(按删除按钮)字符串数组的所有元素时,它会删除除一个元素之外的所有元素。我试过以不同的顺序排列字符串数组元素,它似乎不是特定于字符串元素值的,如果它是一个 3 元素数组,它总是中间元素。
我怀疑从数组中删除元素(其原始大小定义了所需的循环数)会导致第二个 for 循环出现问题。
一些调试控制台输出:
如您所见,第二组 if 条件失败,并且字符串数组的最后一个元素永远不会被删除。然后程序退出所有 for 循环并调用包含最终调试打印语句的方法。
ios - iPadOS/iOS 13.4 企业应用程序崩溃
我注意到更新到 iPadOS 13.4 后我的企业应用程序崩溃(例如配置文件过期时,但它们是最新的),但是当用户从服务器重新下载 ipa 文件并再次安装时,一切正常。更奇怪的是,并非所有用户都随机发生。有人知道我如何防止用户在 13.4 版本上崩溃吗?它是一个 iOS 错误还是我只是忘记对我的证书/代码做些什么?
提前感谢您的帮助。
ios - iPadOS 13.4 Ble 配对弹出窗口在没有读/写受保护特征的情况下触发
在 iPadOS 13.4 之前,我们需要读取/写入外围设备的受保护特性才能触发配对弹出窗口。启动 iPadOS 13.4 - 密码弹出似乎只是通过与外围设备的成功连接(CBCentralManager().connect(peripheral, options: nil))触发。
我需要进一步与外围设备通信,以便在显示配对弹出窗口之前获取密码。一旦显示配对弹出窗口 - 外围设备将停止响应任何进一步的请求。
这是 13.4 上的设计更改还是错误?我在 Web/Apple 的 iPadOS 13.4 发行说明上找不到任何内容。
如果这是设计更改 - 处理此问题的优雅方式是什么?
以下代码在 didConnect 外围设备上触发配对: //示例代码