小编DrM*_*uer的帖子

UILabel 与 CATextLayer 性能对比

UILabel我想知道在表视图单元格中使用实例与 CATextLayers 的性能差异。虽然UILabel由于界面生成器的支持而非常方便,并且具有一些附加功能,例如提供阴影的方式,CATextLayer可以访问更多字体,并且应该是更靠近图形硬件的一层(原文如此!)。顺便说一句,有谁知道UILabel内部是否可能使用CATextLayers ?

为了将便利性和对更多字体的访问结合起来,可以从 派生UILabel,将图层类更改为CATextLayer并根据标签属性配置图层属性。如果标签drawRect()是空的,这不应该有太多的惩罚(除了额外的UIView惩罚),不是吗?

core-text ios

5
推荐指数
0
解决办法
2300
查看次数

Mac-catalyst - how to make window of min size?

Mac catalyst allows to resize window, any way to provide minimum window size for Mac catalyst app?

macos ios13 mac-catalyst

5
推荐指数
4
解决办法
662
查看次数

在AppDelegate中调用buildMenu,但不调用UIViewController

我正在尝试为我的应用程序中的每个视图创建一个自定义菜单,但是看来buildMenu没有在视图控制器中调用。这是一个例子:

在我的AppDelegate中,使用了此代码,该代码可以按预期100%运行。

override func buildMenu(with builder: UIMenuBuilder) {

    print("Updating menu from AppDelegate")

    super.buildMenu(with: builder)

    let command = UIKeyCommand(
        input: "W",
        modifierFlags: [.command],
        action: #selector(self.helloWorld(_:))
    )
    command.title = "Hello"

    builder.insertChild(UIMenu(
        __title: "World",
        image: nil,
        identifier: UIMenu.Identifier(rawValue: "com.hw.hello"),
        options: [],
        children: [command]
    ), atEndOfMenu: .file)
}

@objc private func helloWorld(_ sender: AppDelegate) {

    print("Hello world")
}
Run Code Online (Sandbox Code Playgroud)

但是我需要根据用户在应用程序中的位置来更改菜单中可用的选项,因此我尝试在UIViewController中执行此操作:

override func viewDidAppear(_ animated:Bool){
  // Tried all of these to see if any work
    UIMenuSystem.main.setNeedsRebuild()
    UIMenuSystem.context.setNeedsRebuild()
    UIMenuSystem.main.setNeedsRevalidate()
    UIMenuSystem.context.setNeedsRevalidate() 
}
Run Code Online (Sandbox Code Playgroud)

然后再次..

// This is never called …
Run Code Online (Sandbox Code Playgroud)

ios ios13 mac-catalyst uimenu uimenubuilder

5
推荐指数
1
解决办法
358
查看次数

如何有条件地为 Catalyst 编译代码?

我正在将 iOS 应用程序移植到 Catalyst。Catalyst (Mac) 版本将有自己的目标。

有没有一种官方方法可以有条件地为 Catalyst 编译代码?否则,我可以添加特定于目标的定义,但最好使用更通用的定义。

macos ios mac-catalyst

5
推荐指数
1
解决办法
2278
查看次数

iOS Catalyst Cocoapod 框架错误——签名需要开发团队

我正在更新我的 iOS 应用程序以在 Mac 上运行。选择 Mac 复选框后,我在尝试为 Mac 构建时在下面的屏幕截图中收到错误消息。它告诉我我需要为这个 Cocoapod 框架选择一个开发团队。但是,我可以在不选择开发团队的情况下构建到 iPhone 或 iPad。

我尝试选择一个使错误消失的开发团队,但是当我将应用程序二进制文件上传到 Apple 时,它​​被拒绝并显示错误:ITMS-90284:代码签名无效 - 可执行文件“Timestamp.app/Contents/Frameworks/BSImagePicker。 framework/Versions/A/Resources/BSImagePicker.bundle' 必须使用配置文件中包含的证书进行签名。

我想我是从 Apple 收到这个错误的,因为我为这个 Cocoapod 框架选择了一个开发团队。

有关如何处理 Catalyst 应用程序的此错误的任何建议?

Mac 构建错误

ios cocoapods swift mac-catalyst

5
推荐指数
2
解决办法
1206
查看次数

macOS 命令行实用程序与 CoreBluetooth 权限 (iTerm)

我正在为 macOS 编写一个与 BLE 设备交互的命令行工具。我有一个关于权限的问题:

如果我在命令行上启动我的工具,它就会被操作系统杀死。仅当我通过调试器启动它时,图形警报器才会出现以允许蓝牙权限。

我的包含 NSBluetoothAlwaysUsageDescription 键的 plist 作为 __TEXT __info_plist 嵌入到二进制文件中。如今,这对于命令行工具访问受安全保护的操作系统设施来说已经不够了吗?

macos command-line core-bluetooth iterm2

5
推荐指数
1
解决办法
459
查看次数

在应用程序和扩展程序之间共享 sqlite 数据库

我遵循了教程并添加了我的数据库。我确实针对我的应用程序和扩展程序。从我的应用程序中,我可以对数据库执行 SELECT、INSERT、DELETE 和 UPDATE。我希望我的应用程序和扩展程序共享同一个数据库。所以我在我的应用程序中添加信息,然后在扩展程序中显示该信息。

由于它现在工作(我已经测试过),该应用程序有一个数据库实例,而扩展程序有一个实例。我只添加了一个数据库。任何人都知道为什么我的数据库有两个实例以及为什么我无法访问从扩展程序中的应用程序添加的数据?

database sqlite ios8-extension

4
推荐指数
1
解决办法
2456
查看次数

我可以在 Mac Catalyst iOS 应用程序上禁用窗口大小调整功能吗

我正在迁移我的 iOS 应用程序以支持 MacCatalyst,但我想防止用户调整窗口大小。

你有什么建议吗?

macos ios uikitformac mac-catalyst

4
推荐指数
1
解决办法
1918
查看次数

3
推荐指数
1
解决办法
1662
查看次数

使用 `xcodebuild` 为 Mac 的 Catalyst/UIKit 进行命令行构建?

我在任何地方都看不到这个文档——有没有想过我们如何使用 xcodebuild 为 Mac 的 UIKIt(即 Catalyst)构建项目?

您可以指定“-sdk iphoneos”与“-sdk iphonesimulator”在这两个目标之间切换,但“-sdk uikitformac”似乎不起作用(“未找到SDK”),尽管Xcode本身使用该命名法(例如,它构建到“Debug-uikitformac”文件夹等)。我还尝试了可能有意义的不同 SDK 值(例如“-sdk macabi”),但无济于事。

建议?

xcodebuild mac-catalyst

3
推荐指数
2
解决办法
7469
查看次数