小编VYT*_*VYT的帖子

如何在swift2中找到另一个字符串中一个字符串的所有位置?

我可以通过使用下面的代码在myString"ATGGACGTGAGCTGATCGATGGCTGAAATGAAAA"(即索引范围是0 .. <3)中找到字符串"ATG"的第一个位置.问题是如何找到"ATG"的所有位置,而不仅仅是myString中的第一个位置.

let stringRange = myString.rangeOfString("ATG")
Run Code Online (Sandbox Code Playgroud)

string swift

10
推荐指数
3
解决办法
7342
查看次数

如何在Swift 2.2+中编写非C类for循环?

我更新了Xcode(7.3)并且有很多变化; 表达式的C-like将被弃用.举个简单的例子,

for var i = 0;  i <= array.count - 1;  i++
 {
      //something with array[i]
 } 
Run Code Online (Sandbox Code Playgroud)

如何编写这个清晰简单的C-like for-loop以符合新的变化?

for var i = 0, j = 1;  i <= array.count - 2 && j <= array.count - 1;  i++, j++
{
     //something with array[i] and array[j]
}  
Run Code Online (Sandbox Code Playgroud)

更新.还有一个变种

for var i = 0; i <= <array.count - 1; i++
{
    for var j = i + 1; j <= array.count - 1; j++
    {
        //something with array[i] and array[j] …
Run Code Online (Sandbox Code Playgroud)

for-loop swift swift2

8
推荐指数
3
解决办法
1998
查看次数

如何在不减慢过程的情况下使用颜色进行文本着色?

我发现字符串着色的时间取决于使用了多少不同的NSColors.在下面的代码中,如果我只对三种情况使用一种颜色,则文本着色过程比三种不同颜色用于这三种情况的情况快3倍,每种情况下每种颜色.为什么?有没有办法不减慢三种不同颜色的着色?

for i in 0..<arrayOfNSRangesForA.count
{
    textFromStorage.addAttribute(NSForegroundColorAttributeName, value: NSColor.green, range: arrayOfNSRangesForA[i])
}

for i in 0..<arrayOfNSRangesForT.count
{
   textFromStorage.addAttribute(NSForegroundColorAttributeName, value: NSColor.green, range: arrayOfNSRangesForT[i])
}

for i in 0..<arrayOfNSRangesForC.count
{
    textFromStorage.addAttribute(NSForegroundColorAttributeName, value: NSColor.green, range: arrayOfNSRangesForC[i])
}
Run Code Online (Sandbox Code Playgroud)

更新 我发现了一件坏事.当我改变着色时NSForegroundColorAttributeName,NSBackgroundColorAttributeName运行时间显着增加--10倍.对于20 000个字符,它是一种颜色,NSForegroundColorAttributeName- 1秒,NSBackgroundColorAttributeName- 10秒; 如果有三种颜色 - 相应的3和30秒.对我而言,Swift的功能非常糟糕!由于DNA的长度是数千个A,T,G,C字符,因此无法用DNA(ATGC序列)着色进行正常工作!

更新 在评论中,我建议仅为文本的可见部分着色.我尝试过这种方法,与标准方式相比,即使对于较短的文本也是如此.所以,我有文本的NSRange文本的可见部分,并在滚动时使用通知滚动时在飞行中着色.这是一个糟糕的方式.

arrays nsattributedstring nscolor swift

8
推荐指数
1
解决办法
280
查看次数

如何将一组快速元组转换为NSMutableArray?

我有快速的元组数组,[(String, String)]并希望将此数组转换为NSMutableArray.我试过这个并没有用:

let myNSMUtableArray = swiftArrayOfTuples as! AnyObject as! NSMutableArray
Run Code Online (Sandbox Code Playgroud)

arrays casting nsmutablearray swift

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

如何在可可,swift中设置打印?

我通过在mainController中为此NSView的按钮分配以下操作,为NSPopover的自定义NSView创建了打印功能:

@IBOutlet var plasmidMapIBOutlet: PlasmidMapView!

@IBAction func actionPrintfMap(sender: AnyObject)
{
    plasmidMapIBOutlet.print(sender)
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但打印窗口没有纸张尺寸方向选项,请参见下面的截图. 在此输入图像描述

  1. 如何在打印窗口中获取这些选项?
  2. 并且,如何使NSView适合可打印区域?现在它不合适.

我已经想出了一些时刻,但并不完全.所以,我可以通过以下代码设置打印

 @IBAction func actionPrintMap(sender: AnyObject)
 {
    let printInfo = NSPrintInfo.sharedPrintInfo()
    let operation: NSPrintOperation = NSPrintOperation(view: plasmidMapIBOutlet, printInfo: printInfo)
    operation.printPanel.options = NSPrintPanelOptions.ShowsPaperSize
    operation.printPanel.options = NSPrintPanelOptions.ShowsOrientation
    operation.runOperation()

    //plasmidMapIBOutlet.print(sender)
 }
Run Code Online (Sandbox Code Playgroud)

但是,我还有问题.从上面的代码,我可以定向(最后,ShowsOrientation),但不能同时纸型和方向.如何管理ShowsPaperSize和ShowsOrientation?

printing cocoa swift

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

如何在 NSImageView 上移动 CALayer

有一个 NSImageView 的子类,并且创建了 CALayer 的实例,所以我们在图像上看到了一个矩形。问题是如何在鼠标按下时(当鼠标指针在矩形内)并拖动时移动这个矩形。当鼠标向上时,这个矩形 (CALayer) 应该留在图像上的新位置。

例如

class ImageViewWithRectangle: NSImageView
{
    var shape : CAShapeLayer!

    func drawRectangle()
    {   
        shape = CAShapeLayer()
        shape.lineWidth = 1.0
        shape.fillColor = NSColor.clear().cgColor
        shape.strokeColor = NSColor.gray().cgColor
        shape.lineDashPattern = [1,1]
        self.layer?.addSublayer(shape)

        let path = CGMutablePath()
        path.moveTo(nil, x: 1, y: 1)
        path.addLineTo(nil, x: 1, y: 50)
        path.addLineTo(nil, x: 50, y: 50)
        path.addLineTo(nil, x: 50, y: 1)
        path.closeSubpath()
        self.shape.path = path

    }
}     
Run Code Online (Sandbox Code Playgroud)

calayer nsimageview swift

2
推荐指数
1
解决办法
602
查看次数

如何快速找到字符串中任何第一个字符的索引,但不是空格?

有以空格开头的字符串。如何在此类字符串中找到除空格之外的任何第一个字符的索引?

string swift

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

使用SceneKit时如何将文本放在特定位置?

我试图遵循与圆柱体,盒子......相同的简单逻辑,所以只需定义textNode的位置,但它不起作用.

func makeText(text3D: String, position: SCNVector3, depthOfText: CGFloat, color: NSColor, transparency: CGFloat) -> SCNNode
{
    let textTodraw = SCNText(string: text3D, extrusionDepth: depthOfText)
    textTodraw.firstMaterial?.transparency = transparency
    textTodraw.firstMaterial?.diffuse.contents = color
    let textNode = SCNNode(geometry: textTodraw)
    textNode.position = position        
    return textNode
}
Run Code Online (Sandbox Code Playgroud)

textnode scenekit swift3

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

如何在OSX应用程序的NStextView窗口中启用文本水平滚动?

我在Xcode上花了很长时间没有解决方案,我在Xcode中错过了OSX应用程序的简单功能。当我在NStextView窗口中键入文本或在其中键入文本时,该文本应在右侧继续,并且我可以水平滚动。现在改为改为在下一行显示文本,而我只有垂直滚动。我必须在xcode设置中做什么才能进行水平滚动而不跳到下面的行?

macos xcode scrollview swift

0
推荐指数
1
解决办法
1704
查看次数