小编iOS*_*com的帖子

有没有办法在Xcode中列出所有文件及其目标?

我是多个开发人员的项目的一部分.该项目包含多个目标.很多时候,文件被提交到Xcode项目存储库,其中包含一些不包含的目标(粗心的程序员).因此,每当我执行'svn up'并运行应用程序时,我的程序崩溃了.然后,我必须查看所有这些文件,看看哪个文件与缺少的目标一起提交,然后添加目标,并将文件重新发送到存储库(对于那个粗心的程序员)

是否有某种方法通过脚本自动将所有.m添加到特定目标?或列出特定目标缺少的所有文件?

我已经从脚本中查看了向XCode项目添加文件以供参考.

shell xcode applescript xcode4

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

如何使用代码旋转iOS模拟器?

有谁知道如何旋转iOS模拟器(6.0及以上)?我已经搜索过,但没有发现任何相关内容.

我试图通过代码(不是手动)来做到这一点,但如果它可以通过脚本完成,那么它必须从代码运行.甚至可以这样做吗?需要一些建议.

xcode applescript objective-c

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

如何使用 SwiftUI 制作自定义 Image resizable()

我有意见

struct CustomImageView : View {
    var body: some View {
        Image("someImage")
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在外面引用这个视图时,我无法调整图像大小。我知道我可以传递参数,但我正在寻找一种更简洁的方法来通过修饰符来做到这一点?

VStack {
   CustomImageView()
      .resizable()    // This does not work
}
Run Code Online (Sandbox Code Playgroud)

resizable 似乎只能直接处理图像。有谁知道如何使 CustomImageView 可调整大小?

更新:我知道我可以使用参数,但是无论如何可以使用修饰符来做到这一点?Resizable 只是一种属性,但还有其他属性。并将它们全部列为单个变量将太多

基于@matteo-pacini 实现的答案 它使用 AlamofireImage 在 ImageView 中加载远程图像。

struct RemoteImage : View {
    var url: URLConvertible
    @ObjectBinding var imageLoader = AlamofireImageLoader()

    private (set) var _resizable: (capInsets: EdgeInsets, resizingMode: Image.ResizingMode) = (EdgeInsets(), .stretch)

    var body: some View {
        Image(uiImage: imageLoader.image)
            .resizable(capInsets: _resizable.capInsets, resizingMode: _resizable.resizingMode)
            .onAppear() {
                self.imageLoader.loadImage(url: self.url)
            }
    } …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

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

如何在 SwiftUI 中通过 lineLimit 限制 TextEditor?

我知道如何限制 TextEditor 中的字符数。但是有没有办法通过行号而不是字符来限制它?

用这样的东西?

TextEditor(text: $myText).lineLimit(3)
Run Code Online (Sandbox Code Playgroud)

swiftui

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

在主线程上调用dispatch_sync(dispatch_get_global_queue())会导致应用程序"挂起"吗?

// Method called when a button is clicked

- (void)handleClickEvent {
      dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         [self backgroundProcessing];
      });
      // Some code to update the UI of the view
      ....
      [self updateUI];
      ....
}
Run Code Online (Sandbox Code Playgroud)

1)当按下视图上的按钮时,在主线程上调用handleClickEvent.

2)我使用了dispatch_sync(),因为在计算backgroundProcessing方法中的变量之前,无法完成以下更新视图UI的代码.

3)我使用dispatch_get_global_queue以使backgroundProcessing脱离主线程.(遵循规则:通常将后台处理放在主线程上,并且通常将影响UI的代码放在主线程上).

我的问题是:backgroundProcessing方法是否"挂起"主线程,直到它完成,因为我使用dispatch_sync?

编辑: 基于下面的答案,我已经实现了这个解决方案:

- (void)handleClickEvent {
      dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
         [self backgroundProcessing];
         dispatch_async(dispatch_get_main_queue(), ^{
            [self updateUI];
         });
      });
}
Run Code Online (Sandbox Code Playgroud)

来自此链接的解决方案:完成Callbaks

xcode objective-c grand-central-dispatch ios objective-c-blocks

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

如何使NSView立即获得焦点/第一响应者接受mouseDown事件?

我有一个加载了2个独立NSWindow的应用程序。

每个窗口都有一个小表,其中有两个项目。

这是我似乎无法解决的问题->

如果#1窗口处于活动状态/已聚焦,则我可以正常单击表中的各个行。但是,如果我想单击窗口#2内表中的行,则必须单击表两次。第一次单击以使窗口#2处于活动/焦点状态,最后一次单击以实际选择该行。

我怎样才能一键选择NSTableViews中的行(不管它们的窗口是否处于焦点)?

cocoa objective-c nstableview nswindow

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

Autolayout不能与带有Storyboard的NSSplitView和NSPageController一起使用.这是Apple Bug吗?

我刚刚在github上创建了一个空项目 - > 这里 < - 来演示问题(在objective-c中完成)

该项目是一个简单的故事板项目.NSWindowController加载一个NSPageController,它加载一个包含3个窗格的NSSplitView.除了加载屏幕的代码之外,示例项目中没有代码.当项目运行时,它看起来像这样在此输入图像描述.

当调整窗口大小时,如何获取约束以使splitView一直延伸到末尾?奇怪的是,如果你将NSWindowController的contentController从NSPageController切换到NSSplitViewController,那么每件事都按预期工作.这是Apple Bug吗?我很感激任何答案swift/objectivec please.我试过但没有任何作用.

[编辑] - 基于下面的答案和进一步研究(联系Apple),似乎NSPageViewController不使用自动布局约束,但依赖于其子视图上的自动调整遮罩和框架设置.

因此,当页面控制器创建其视图控制器时,我们应该设置:

-(NSViewController *)pageController:(NSPageController *)pageController viewControllerForIdentifier:(NSString *)identifier {
    NSViewController *viewController = [self.storyboard instantiateControllerWithIdentifier:identifier];
    [viewController.view setAutoresizingMask:(NSViewWidthSizable|NSViewHeightSizable)];
    return viewController;
}
Run Code Online (Sandbox Code Playgroud)

有了这个,问题就解决了.我希望将来作为更新,这个控件适用于Autolayout约束,因为它看起来更自然.

macos cocoa objective-c autolayout nslayoutconstraint

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

如何在SwiftUI中创建水平列表?

我可以将所有视图包装在列表中

List {
   // contents
}
Run Code Online (Sandbox Code Playgroud)

但这似乎是垂直滚动。如何使其水平?

ios swiftui

4
推荐指数
3
解决办法
2465
查看次数

如何在SwiftUI视图上使用Combine

这个问题与此有关:如何使用SwiftUI和Combine观察TextField的值?

但是我要问的是比较笼统的。这是我的代码:

struct MyPropertyStruct {
    var text: String
}

class TestModel : ObservableObject {
    @Published var myproperty = MyPropertyStruct(text: "initialText")

    func saveTextToFile(text: String) {
        print("this function saves text to file")
    }
}

struct ContentView: View {
    @ObservedObject var testModel = TestModel()
    var body: some View {
        TextField("", text: $testModel.myproperty.text)
    }
}
Run Code Online (Sandbox Code Playgroud)

场景:随着用户在文本字段中键入内容,应该调用saveTextToFile函数。由于这是保存到文件,因此应放慢/限制它。

所以我的问题是:

  1. 将合并操作放在下面的代码中的适当位置在哪里。
  2. 我要完成什么组合代码:(A)字符串不能包含空格。(B)字符串必须为5个字符长。(C)弦必须去抖动/掉线

我想在这里使用响应作为一种通用模式:我们应该如何处理SwiftUI应用程序(而非UIKit应用程序)中的组合内容。

ios swift swiftui

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

如何制作一个包含特定值的Swift词典?

通常我会像这样创建我的swift字典:

var myDict: [String: String]
Run Code Online (Sandbox Code Playgroud)

但是,我如何创建一个可以包含值,只有String或Bool的Dictionary?

如果我像下面的代码一样声明字典

var myDict: [String: Any]
Run Code Online (Sandbox Code Playgroud)

然后我的数组现在能够容纳任何我不想要的对象.有没有办法声明Dictionary只接受StringBool赋值类型?

[编辑] - 用例是:我需要有一个键和值的字典.但我只想将值限制为Strings或Bools.没有其他的.目标是最终使用此Dictionary转换为JSON格式以发送到某个服务器.基于下面的答案,我唯一的选择是枚举还是类/结构?我想知道是否有办法让Bool和String符合某些协议?

这个想法可能是这样声明字典

var myDict : [String: stringOrBool]
Run Code Online (Sandbox Code Playgroud)

并填写这样的字典

myDict["firstKeyStringValue"] = "my first string value" // This should work
myDict["firstKeyBoolValue"] = true // This should work
myDict["someOtherKey"] = 123 // This should fail
Run Code Online (Sandbox Code Playgroud)

编辑2 根据下面的答案,我选择了协议方法,因为它在语法上更容易.但正如鲶鱼在评论中提到的那样,它可能会占用更多的内存.

cocoa cocoa-touch ios swift

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