小编mic*_*ica的帖子

如何访问angular.dart组件的属性或方法

我定义了一个angular.dart组件,如下所示:

@NgComponent(
    selector: 'dartcomp',
    templateUrl: 'dartComp.html',
    publishAs: 'ctrl',
    map: const
    { 
      'val' : '@val'
    }
)
class DartComp
{ 
  String val;
  calc(a,b) =>a+b;
}
Run Code Online (Sandbox Code Playgroud)

HTML中用法是:

 <dartcomp id="dc"></dartcomp> 
Run Code Online (Sandbox Code Playgroud)

如何从主dart访问angular.dart组件的属性val或方法calc()

对组件调用就像

querySelector("#dc").val = "Frank";
Run Code Online (Sandbox Code Playgroud)

扔:

类'UnknownElement'没有实例setter'val ='.

NoSuchMethodError : method not found: 'val='
Receiver: Instance of 'UnknownElement'
Arguments: ["Frank"]
Run Code Online (Sandbox Code Playgroud)

这个错误是什么?

dart angular-dart

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

如何以编程方式连接 Swift / MacOS 中的插座和动作

我有一个简单的例子。我使用 ctrl 将左 button1 和 label1 连接到控制器类。

如何以编程方式对右侧的 button2 label2 执行相同的操作(无需按住 ctrl 拖动)

Xcode

那是我的代码:

class ViewController: NSViewController {

  @IBOutlet weak var label1: NSTextField!  //connected with ctrl-drag
  @IBOutlet weak var button1: NSButton!    //connected with ctrl-drag

  @IBOutlet weak var label2: NSTextField!  //not yet connected
  @IBOutlet weak var button2: NSButton!    //not yet connected

  @IBAction func button1Pressed(_ sender: Any)  //connected with ctrl-drag
  { label1.stringValue = "button-I"
    button1.title = "pressed"
  }

  @IBAction func button2Pressed(_ sender: Any)  //not yet connected
  { label2.stringValue = "button-II"
    button2.title = …
Run Code Online (Sandbox Code Playgroud)

macos xcode iboutlet ibaction swift

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

NSPopover中的NSTableview与独立视图不同

我创建了一个类ListView,这是一个非常简单的Tableview。

如果我用IB实例化它,一切看起来都会很好。如果我以编程方式实例化它也是如此。

如果在a中以编程方式实例化它NSPopover,则表的每一行都会得到浅灰色背景。

在此处输入图片说明

这是从哪里来的?

这里的代码:

class ViewController: NSViewController {
    let popover = NSPopover()

    @IBOutlet weak var label: NSTextField!
    @IBAction func bu1(_ sender: Any) { 
        popover.show(relativeTo: label.visibleRect, of: label, preferredEdge: NSRectEdge.maxY)
    }

    override func viewDidLoad() { 
        super.viewDidLoad()

        let scrollListView = NSScrollView()
        let listView = ListView(frame: NSRect(x:100, y: 100, width: 100, height: 100))
        scrollListView.documentView = listView

        let viewController = NSViewController()
        viewController.view = scrollListView

        popover.appearance = NSAppearance(named: NSAppearance.Name.vibrantLight)
        popover.animates = false
        popover.contentViewController = viewController
    }
}

class ListView: NSTableView, NSTableViewDataSource, NSTableViewDelegate …
Run Code Online (Sandbox Code Playgroud)

macos cocoa nstableview nspopover swift

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

swiftUI:在 onAppear 中更改 @State 崩溃

如果通过调用服务出现视图,我想设置一个@State 变量。
调用服务会onAppear导致应用程序崩溃。
在按钮操作中调用服务工作正常。

struct ContentView: View {
  @State var dirContent : [String] = []

  var body: some View {
    VStack {
      List {
        ForEach(dirContent, id: \.self){
          fileName in
          Text(fileName)
        }
      }
      Button("Get Data"){self.dirContent = Service.getData()}
    }
    .onAppear{
    //self.dirContent = Service.getData2()   // Crashes!!
    }
  }
}

class Service{
  static func getData()->[String]{
    // ... get Data from somewhere
    return ["line1", "line2"]
  }

  static func getData2()->[String]{
    // ... get Data from somewhere
    return ["line4", "line5"]
  }
}
Run Code Online (Sandbox Code Playgroud)

怎么了?

swift swiftui

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

在 MacO 上的 SwiftUI 中打开 FileDialog

在 MacOS 上的 SwiftUI 应用程序中,我希望允许用户从 MacOS 文件系统中选择一个文件。
我尝试使用 AppKits NSOpenPanel

我试过这样,但我无法创建 NSViewControllerRepresentable。

struct ContentView: View {
  @State var filename = "Filename"
  @State var showFileChooser = false

  var body: some View {
    HStack {
      Text(filename)
      Button("select File")
      { self.showFileChooser = true
      }.sheet(isPresented: $showFileChooser)
      { FileChooser()
      }
    }
    .frame(maxWidth: .infinity, maxHeight: .infinity)
  }
}

struct FileChooser : {
  func makeNSViewController(context: Context) -> NSOpenPanel {
    NSOpenPanel()
  }

  func updateNSViewControler(_ nsView: NSOpenPanel, context: Context) {
  }
}
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?
怎么了?

macos swift swiftui

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

如何检测使用 SwiftUI 3 AsyncImage() 获取的图像的方向

我使用 AsyncImage() 获取要在视图中显示的图像。

struct Pic: View {
  var body: some View {
    let url = FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("Documents").appendingPathComponent("IMG_5328.jpeg")
    
    AsyncImage(url: url) { image in
      image
      .resizable()
 //     if(image.orientation == .right) {
 //       .rotationEffect(.degrees(90))
 //     }
      .scaledToFit()
    } placeholder: {
      Color.red
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

图像文件 (IMG_5328.jpeg) 的方向为 6(逆时针 90 度),但图像未通过自动旋转进行渲染。
我怎样才能获得手动旋转它的方向。

使用 UIImage 会自动完成此操作。

let url = FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("Documents").appendingPathComponent("IMG_5328.jpeg")  
    let imageData = try! Data(contentsOf: url!)
    let uiImage = UIImage(data: imageData)!
Run Code Online (Sandbox Code Playgroud)

image uiimage swiftui

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

storyboard来自tablecell的详细信息披露按钮

如果在单元格中单击或单击单元格详细信息披露按钮,我想从表格单元格切换到两个不同的视图控制器.

如果我按住Ctrl键拖动第二个segue,则删除第一个.我究竟做错了什么?

Tnx Mica

iphone cocoa-touch storyboard ios segue

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

SwiftUI 将列表中的行间距减少为空

我想将列表中的行距减少为空。

\n\n

我尝试减少填充没有成功。\n设置 \xc2\xb4.environment(.defaultMinListRowHeight, 0)\xc2\xb4 有很大帮助。

\n\n
struct ContentView: View {\n  @State var data : [String] = ["first","second","3rd","4th","5th","6th"]\n\n  var body: some View {\n    VStack {\n      List {\n        ForEach(data, id: \\.self)\n        { item in\n          Text("\\(item)")\n          .padding(0)\n          //.frame(height: 60)\n          .background(Color.yellow)\n        }\n        //.frame(height: 60)\n        .padding(0)\n        .background(Color.blue)\n      }\n      .environment(\\.defaultMinListRowHeight, 0)\n      .onAppear { UITableView.appearance().separatorStyle = .none }\n      .onDisappear { UITableView.appearance().separatorStyle = .singleLine }\n    }\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

将 \xc2\xb4separatorStyle\xc2\xb4 更改为 \xc2\xb4.none\xc2\xb4 仅删除了该行,但留下了空格。
\n列表行或行之间的分隔符是否有额外的 \xc2\xb4hidden\xc2\xb4 视图?\n如何控制?

\n\n

会使用ScrollView而不是一个List好的解决方案吗?

\n\n
ScrollView(.horizontal, showsIndicators: true)\n        {\n …
Run Code Online (Sandbox Code Playgroud)

swiftui swiftui-list

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

在 MacOS SwiftUI 应用程序中列出和关闭 Windows

我有这个小示例应用程序,它创建了我的 SwiftUI MacOS 应用程序的多个 Windows。
是否可以:

  • 想要获得 MainView 中所有打开的窗口的列表?
  • 从 MainView 关闭单个窗口?
  • 从 MainView 向单个窗口发送消息?
@main
struct MultiWindowApp: App {
  @State var gvm = GlobalViewModel()
  var body: some Scene {
    WindowGroup {
      MainView()
      .environmentObject(gvm)
    }
    WindowGroup("Secondary") {
      SecondaryView(bgColor: .blue)
      .environmentObject(gvm)
    }
    .handlesExternalEvents(matching: Set(arrayLiteral: "*"))
  }
}


struct MainView: View {
  @Environment(\.openURL) var openURL
  @EnvironmentObject var vm : GlobalViewModel

  var body: some View {
    VStack {
      Text("MainView")
      Button("Open Secondary") {
        if let url = URL(string: "OpenNewWindowApp://bla") {
          openURL(url)
        }
       //List of …
Run Code Online (Sandbox Code Playgroud)

macos swiftui swiftui-windowgroup

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

在 SwifUI 中以编程方式关闭弹出窗口

我尝试通过设置变量来关闭弹出窗口,该变量显示为 false。

示例代码的行为非常奇怪。有没有更好的方法使用“取消”按钮以编程方式关闭弹出窗口?

import SwiftUI

struct ContentView: View {
  let lines = ["line 1", "line 2","line 3"]
  var body: some View {
    List {
      ForEach(lines, id: \.self)
      { Line(text: $0)
      }
    }
  }
}

struct Line: View {
  @State var text: String
  @State var showSheet = false

  var body: some View {
    VStack
    { Text("\(text)")
      .onTapGesture {
        self.showSheet = true
      }
    }.popover( isPresented: self.$showSheet,
               arrowEdge: .trailing
             )
    { Pop(showSheet: self.$showSheet)
    }
  }
}

struct Pop: View {
  @Binding var showSheet: …
Run Code Online (Sandbox Code Playgroud)

macos popover nspopover swiftui

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