小编Cue*_*Cue的帖子

如何在Swift中获取文本中真实单词的数量

编辑:已经存在类似于此问题的问题,但它是由特定字符分隔的数字(对于平均计算器,获取快速的单词).相反,这个问题是要获得文本中真实单词的数量,以各种方式分隔:换行符,一些换行符,一个空格,一个空格等.

我想用Swift 3获取字符串中的单词数.

我正在使用这段代码,但我得到的结果不精确,因为数字是计算空格和新行而不是有效字数.

let str = "Architects and city planners,are  \ndesigning buildings to create  a better quality of life in our urban    areas."
// 18 words, 21 spaces, 2 lines

let components = str.components(separatedBy: .whitespacesAndNewlines)

let a = components.count

print(a)
// 23 instead of 18
Run Code Online (Sandbox Code Playgroud)

string count swift

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

我不能在状态栏macOS应用程序中使用自定义触摸栏

我的应用程序显示为状态栏应用程序(在Info.plist中"应用程序是代理(UIElement)= YES").

我在Interface Builder中添加了一个TouchBar,并在其上添加了一些Touch Bar Buttons项目.问题是自定义触摸栏没有显示.

为了使自定义触摸条显示我需要将主WindowController窗口设置为Is Initial Controller,不幸的是,通过这样做,应用程序还会播放一个单独的窗口,其内容与菜单项的弹出窗口相同.

有没有办法为状态栏macOS应用程序实现自定义触摸栏?

在此输入图像描述

menu macos-sierra nstouchbar

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

Xcode - 如何更改macOS应用程序的显示名称?

应用程序的产品名称是应用程序的名称,因为它将显示给客户,并且您在启动新项目时在Xcode助手中选择它,但如果您想要更改它,该怎么办?

这似乎是一个微不足道的问题,但我尝试搜索,我发现像这样的旧答案在应用程序中更改Cocoa显示名称?(七年前)或者这个如何在构建设置中更改Mac应用程序的名称?假设你有一个MainMenu.xib文件,或者引用iPhone的答案,例如这个答案(九年前)如何更改iOS应用程序的名称?或者这个Apple的iOS技术说明.

因为许多事情可能在七年或更长时间内在Xcode中发生了变化,并且macOS与iOS不同,我害怕制造一些麻烦,或者更改某些部分中出现的名称,但在其他地方忘记旧名称.

更改用户在Mac应用中看到的名称的正确方法是什么?

xcode macos-sierra

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

如何在Swift中的textView中突出显示文本?

我想在UITextView中突出显示部分文本,例如Pages for iOS或Safari for iOS.我搜索文档,但我找不到办法,也许是因为我是iOS开发的初学者,我想念一些关键信息.有人可以帮帮我吗?

适用于iOS的Pages屏幕截图:

适用于iOS的页面

Safari for iOS的屏幕截图:

适用于iOS的Safari

uitextview ios swift

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

如何在tvOS中将焦点从按钮移动到另一个按钮?

我是tvOS的新手.我想要一个按下的标准按钮,它将焦点移动到另一个标准按钮,我该怎么做(如果可能的话)?

focus menu apple-tv tvos

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

如何在打开在线网页的 NSAlert 中放置问号按钮?

编辑:我的问题不是很清楚,现在我对其进行了编辑,以明确我需要打开在线网页而不是帮助手册。

\n\n

我想在 macOS 项目的 NSAlert 中包含一个问号按钮,该按钮指向带有帮助资源的在线网页。

\n\n

在这里看到有两种可能性:

\n\n
\n

var showHelp: Bool 指定警报是否有帮助按钮。

\n\n

var helpAnchor:字符串?Alert\xe2\x80\x99s HTML 帮助锚点。

\n
\n\n

但我不知道如何实现它。

\n\n

我使用这段代码:

\n\n
@IBAction func buttonPressed(_ sender: Any) {\n    let myAlert: NSAlert = NSAlert()\n\n    myAlert.messageText = "Message"\n    myAlert.informativeText = "Informative text."\n\n    myAlert.showsSuppressionButton = true\n\n    myAlert.addButton(withTitle: "Later")\n    myAlert.addButton(withTitle: "Now")\n    myAlert.addButton(withTitle: "OK")\n\n    let choice = myAlert.runModal()\n\n    switch choice {\n    case NSAlertFirstButtonReturn:\n        print ("OK")\n    case NSAlertSecondButtonReturn:\n        print ("Now")\n    case NSAlertThirdButtonReturn:\n        print ("Later")\n    default: break\n\n    }\n    if myAlert.suppressionButton!.state == …
Run Code Online (Sandbox Code Playgroud)

macos nsalert

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

如何在swift中创建包含大写字母的单词列表?

我想生成一个给定字符串的单词列表,其中每个列出的单词至少包含一个大写字母.

有这样一个字符串:

let str: String = "Apple watchOS 3 USA release date and feature rumours."
Run Code Online (Sandbox Code Playgroud)

我想得到一个像这样的数组:

var list: [String] = ["Apple", "watchOS", "USA"]
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

string swift

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

如何用Swift字符串中的描述替换表情符号字符

我正在寻找一种方法来用Swift字符串中的描述替换表情符号字符.

例:

输入 "This is my string "

我想替换以获取:

产量 "This is my string {SMILING FACE WITH OPEN MOUTH AND SMILING EYES}"

到目前为止,我正在使用MartinR对此答案的原始代码修改的代码,但只有在我处理单个字符时它才有效.

let myCharacter : Character = ""
let cfstr = NSMutableString(string: String(myCharacter)) as CFMutableString
var range = CFRangeMake(0, CFStringGetLength(cfstr))
CFStringTransform(cfstr, &range, kCFStringTransformToUnicodeName, Bool(0))
var newStr = "\(cfstr)"

// removing "\N"  from the result: \N{SMILING FACE WITH OPEN MOUTH AND SMILING EYES}
newStr = newStr.stringByReplacingOccurrencesOfString("\\N", withString:"")

print("\(newStr)") // {SMILING FACE WITH OPEN MOUTH AND SMILING EYES}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

string xcode emoji swift

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

macOS - 如何让 NSSavePanel 在文件名中添加文件扩展名?

我使用此代码让用户可以选择指定名称和在磁盘上保存纯文本文件的位置。一切似乎都有效,但保存的文件没有任何扩展名。实际上我没有在代码的任何部分指定扩展名,我阅读了 NSSavePanel 文档而没有注意到解释这个选项的部分。

这是我正在使用的代码:

    let textToExport = mainTextField.textStorage?.string

    if textToExport != "" {
        let mySave = NSSavePanel()

        mySave.begin { (result) -> Void in

            if result == NSFileHandlingPanelOKButton {
                let filename = mySave.url

                do {
                    try textToExport?.write(to: filename!, atomically: true, encoding: String.Encoding.utf8)
                } catch {
                    // failed to write file (bad permissions, bad filename etc.)
                }

            } else {
                NSBeep()
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

macos nssavepanel swift

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

如何在Swift中实现ROT13功能?

我想创建一个接收String并返回一个String的函数,并在字母表中用字母后面的字母替换一个字母13个字母(ROT13).我发现了很多例子,遗憾的是由于各种错误,我无法让它工作.例如这一个:

var key = [String:String]() // EDITED
let uppercase = Array(arrayLiteral: "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
let lowercase = Array(arrayLiteral: "abcdefghijklmnopqrstuvwxyz")
for i in 0 ..< 26 {
    key[uppercase[i]] = uppercase[(i + 13) % 26]
    key[lowercase[i]] = lowercase[(i + 13) % 26]
}

func rot13(s: String) -> String {
    return String(map(s, { key[$0] ?? $0 }))
}
Run Code Online (Sandbox Code Playgroud)

string xcode rot13 swift

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