小编Vad*_*dim的帖子

以编程方式在iOS中获取自己的电话号码

有没有办法通过iPhone SDK的标准API获取自己的电话号码?

iphone phone-number ios

327
推荐指数
6
解决办法
21万
查看次数

以编程方式在iPhone日历中添加自定义事件

有没有办法从自定义应用程序中将iCal事件添加到iPhone日历?

iphone calendar ios eventkit

180
推荐指数
6
解决办法
13万
查看次数

在Cocoa中实现源代码语法高亮的最佳方法是什么?

我正在研究Cocoa应用程序,它应该能够分析和突出显示用Objective-C,SQL,JavaScript,Python等语言编写的源代码.文本也应该是可编辑的(例如,使用NSTextView).

请告知在Mac OS X 10.5中实现此类功能的最佳方法是什么.

无需支持自动完成和其他额外功能.通过关键字,字符串,#include和数字进行简单格式化,但性能很酷就可以了.

此外,如果支持语言配置,那将会很棒.

谢谢!

cocoa syntax-highlighting objective-c nstextview

18
推荐指数
2
解决办法
9760
查看次数

Objective-C中的静态变量声明如何不同?

请查看此标题:

// Test.h
@interface Test : NSObject @end

extern id A;               // (0)
//extern static id B;      // (1) Uncomment to get a compiling error
extern id C;               // (2)
//extern static id D;      // (3) Uncomment to get a compiling error
Run Code Online (Sandbox Code Playgroud)

并进入这个实现:

// Test.m
#import "Test.h"

id A = @"A";               // (4)
static id B = @"B";        // (5)

@implementation Test

id C = @"C";               // (6)
static id D = @"D";        // (7)

@end

// Still Test.m

@interface …
Run Code Online (Sandbox Code Playgroud)

c cocoa global-variables objective-c static-variables

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

String不能用int索引

当我尝试使用最新版本的Swift 设置label1为第一个字母时,我在最后一行收到错误string.如何解决这个问题?

let preferences = UserDefaults.standard
let name1 = "" + preferences.string(forKey: "name")!
let name2 = name1
label1.text = name2.substring(from: 0)
Run Code Online (Sandbox Code Playgroud)

ios swift3

7
推荐指数
2
解决办法
2883
查看次数

如何在 macOS 命令行工具运行时处理自定义 URL 方案

我正在构建一个命令行工具,它应该在运行时监听自定义 URL 方案:

import AppKit
import CoreServices

let RunLoop = CFRunLoopGetCurrent()

class EventHandler: NSObject {
    @objc(handleAppleEvent:withReplyEvent:)
    func handleURLEvent(_ e: NSAppleEventDescriptor,
                        _ reply: NSAppleEventDescriptor) {
        guard
            let descriptor = e.paramDescriptor(forKeyword: .init(keyDirectObject)),
            let stringValue = descriptor.stringValue,
            let components = URLComponents(string: stringValue) else {
            exit(EXIT_FAILURE)
        }
        print(components)
        CFRunLoopStop(RunLoop)
    }
}

let status = LSSetDefaultHandlerForURLScheme(
    "myscheme" as CFString, "com.test.myscheme" as CFString)
guard status == 0 else {
    print(status)
    exit(EXIT_FAILURE)
}

let handler = EventHandler()
let manager = NSAppleEventManager.shared()
manager.setEventHandler(handler, andSelector: #selector(EventHandler.handleURLEvent(_:_:)),
    forEventClass: .init(kInternetEventClass), andEventID: …
Run Code Online (Sandbox Code Playgroud)

url executable command-line-interface info.plist swift

7
推荐指数
0
解决办法
402
查看次数

如何检测NSView或其父NSWindow的活动外观?

当其父窗口处于活动状态或非活动状态时,所有本机控件的外观都不同。我们应该如何在自定义组件中检查此状态,例如在渲染按钮单元时?

我们可以检查和controlView.window的属性,但它们不能涵盖所有情况。例如,如果您在桌面上打开应用程序的一个窗口,而在全屏空间中打开另一个窗口,则根据公共API,其中只有一个可以是键或主键。但是,标准控件似乎使它们在两个空间中均处于活动状态:isMainWindowisKeyWindow

请注意,两个Safari窗口中的工具栏按钮如何呈现为活动状态。我们如何实现相同的行为?

cocoa nsview appkit nswindow nscell

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

如何在AppKit上以自定义SwiftUI形式右对齐项目标签?

我有以下可可形式:

struct Canvas: PreviewProvider {
  static var previews: some View {
    VStack {
      HStack(alignment: .firstTextBaseline) {
        Text("Endpoint:")
        TextField("https://localhost:8080/api", text: .constant(""))
      }
      Divider()
      HStack(alignment: .firstTextBaseline) {
        Text("Path:")
        TextField("/todos", text: .constant(""))
      }
      Spacer()
    }
    .padding()
    .previewLayout(.fixed(width: 280, height: 200))
  }
}
Run Code Online (Sandbox Code Playgroud)

该面板看起来不错,但我想右对齐“ Endpoint:”和“ Path:”标签:

所以我应用了一个自定义的水平对齐方式:

struct Canvas: PreviewProvider {
  static var previews: some View {
    VStack(alignment: .label) {
      HStack(alignment: .firstTextBaseline) {
        Text("Endpoint:").alignmentGuide(.label) { $0[.trailing] }
        TextField("https://localhost:8080/api", text: .constant(""))
      }
      Divider()
      HStack(alignment: .firstTextBaseline) {
        Text("Path:").alignmentGuide(.label) { $0[.trailing] }
        TextField("/todos", text: .constant(""))
      }
      Spacer() …
Run Code Online (Sandbox Code Playgroud)

forms macos cocoa appkit swiftui

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

如何将 SwiftUI 按钮放入 NSToolbar?

这是NSToolbar使用附件视图控制器插入 SwiftUI 的方式:

import SwiftUI
import PlaygroundSupport

var hostingView = NSHostingView(rootView:
  ZStack {
    Color.clear
    HStack {
      Text("Hey")
      Text("SwiftUI")
    }
  }
  .padding()
  .edgesIgnoringSafeArea(.all)
)
hostingView.frame.size = hostingView.fittingSize

let titlebarAccessory = NSTitlebarAccessoryViewController()
titlebarAccessory.view = hostingView
titlebarAccessory.layoutAttribute = .trailing

let mask: NSWindow.StyleMask = [.titled, .closable, .miniaturizable, .resizable]
let window = NSWindow(
  contentRect: .init(x: 0, y: 0, width: 480, height: 300),
  styleMask: mask, backing: .buffered, defer: false)
window.center()
window.contentView = NSHostingView(rootView: Color(.windowBackgroundColor))
window.toolbar = .init()
window.titleVisibility = .hidden
window.addTitlebarAccessoryViewController(titlebarAccessory)

PlaygroundPage.current.liveView = window.contentView?.superview …
Run Code Online (Sandbox Code Playgroud)

cocoa appkit nswindow nstoolbar swiftui

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

如何将NSOutlineView的最后一个树项保留在补充工具栏的最底部?

我想要在Things应用程序中完成与特殊项目相同的行为.我的意思是补充工具栏底部的日志垃圾项目:

日志和垃圾箱项目位于最底层http://tinyurl.com/lhctza

请建议以任何方式在侧栏树中实现相同的功能.

我觉得特殊的'spacer'树项应该与outlineView:heightOfRowByItem:方法一起使用.

但是,我找不到如何计算所有可见项目的总高度(包括组之间的空间).

tree cocoa sidebar nsoutlineview outline-view

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