小编Pro*_*in8的帖子

如何在Swift中有选择地导入框架?

我有一个需要iOS和tvOS使用的共享框架,但我想有选择地导入仅适用于iOS的框架(CoreTelephony).swift语法说你可以添加一个属性,但这不起作用:

@available(iOS 10.0, *) import CoreTelephony

这根本不受支持吗?我是否需要继承子类才能导入iOS特定的框架?

import frameworks ios swift

6
推荐指数
1
解决办法
1088
查看次数

禁用特定选择器项目

有没有办法禁用特定的选择器项目?在 AppKit 中,您可以NSPopUpButton通过NSMenuValidation协议禁用项目,但可以预见,禁用选择器中的标签不会产生任何影响。只是 SwiftUI 中的另一个 API 差距?

我试过:

Picker(selection: $viewModel.providerSelection, label: Text("Try using:")) {
    ForEach(0..<Provider.allCases.count) {
        Text(Provider.allCases[$0].rawValue.capitalized)
            .disabled(true)
    }
}
Run Code Online (Sandbox Code Playgroud)

禁用和不在这里之间没有视觉或交互差异。

macos swift swiftui swiftui-picker

6
推荐指数
1
解决办法
490
查看次数

使用自定义类型标识符拖放不起作用

我正在尝试使用自定义类型标识符在 macOS 上实现拖放以避免冲突,但它似乎不起作用。首先,这是一个具有公共和已知标识符的工作示例:

struct ReleaseView: View {
    let id: Int

    var body: some View {
        GeometryReader { _ in
            VStack(spacing: 16) {
                Image(nsImage: NSImage(named: NSImage.networkName)!)
                    .contentShape(Rectangle())
                    .onDrag {
                        return NSItemProvider(item: "\(self.id)" as NSString, typeIdentifier: NSPasteboard.PasteboardType.string.rawValue)
                    }

                DropZone()
            }
        }
    }
}

struct DropZone: View {
    @State var isDragging = false

    var body: some View {
        RoundedRectangle(cornerRadius: 16)
            .stroke(style: StrokeStyle(lineWidth: 4, dash: [8, 8]))
            .background(isDragging ? Color.secondary : Color.clear)
            .frame(width: 100, height: 100)
            .onDrop(of: [NSPasteboard.PasteboardType.string.rawValue], isTargeted: self.$isDragging) { itemProvider …
Run Code Online (Sandbox Code Playgroud)

macos swiftui

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

标签 统计

macos ×2

swift ×2

swiftui ×2

frameworks ×1

import ×1

ios ×1

swiftui-picker ×1