我是Swift的初学者,我正在试图弄清楚如何在macOS(Swift 3)上阅读已复制到剪贴板的内容?我经常搜索,但似乎找不到任何有用的东西.
我在网上试过的一些事情:
var pasteboardItems: [NSPasteboardItem]? { get }
print("\(pasteboardItems)")
Run Code Online (Sandbox Code Playgroud)
和
let pb = NSPasteboard.general()
pb.string(forType: NSPasteboardTypeString)
print("\(pb)")
Run Code Online (Sandbox Code Playgroud)
和
let pasteboard = UIPasteboard.general
if let string = pasteboard.string {
// text was found and placed in the "string" constant
}
Run Code Online (Sandbox Code Playgroud)
最后
func paste(sender: AnyObject?) {
let pasteboard = NSPasteboard.generalPasteboard()
if let nofElements = pasteboard.pasteboardItems?.count {
if nofElements > 0 {
// Assume they are strings
var strArr: Array<String> = []
for element in pasteboard.pasteboardItems! {
if let str = element.stringForType("public.utf8-plain-text") …Run Code Online (Sandbox Code Playgroud) 我有一个与User实体具有 OneToOne 关系的实体Profile,并且该Profile实体与实体具有 ManyToMany 关系Category。
// user.entity.ts
@Entity()
export class User {
@PrimaryGeneratedColumn('uuid')
id: string;
@OneToOne(() => Profile, {
cascade: true,
nullable: true,
})
@JoinColumn() // user owns the relationship (User table contains profileId). Use it only on one side of the relationship
profile: Profile;
}
Run Code Online (Sandbox Code Playgroud)
// profile.entity.ts
@Entity()
export class Profile {
@PrimaryGeneratedColumn('uuid')
id: number;
@OneToOne(() => User, (user: User) => user.profile)
user: User;
@ManyToMany(() => Category, (category: Category) => category, …Run Code Online (Sandbox Code Playgroud) 我正在使用本书学习Ruby on Rails .我从这里开始坚持第二次练习.
我的表单部分app/views/users/_form.html.erb看起来像这样:
<%= form_for(@user, url: yield(:path)) do |f| %>
<%= render 'shared/error_messages', object: @user %>
<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>
<%= f.label :email %>
<%= f.email_field :email, class: 'form-control' %>
<%= f.label :password %>
<%= f.password_field :password, class: 'form-control' %>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation, class: 'form-control' %>
<%= f.submit yield(:button_text), class: "btn btn-primary" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我的app/views/users/new.html.erb部分注册视图是这样的:
<% provide(:title, 'Sign …Run Code Online (Sandbox Code Playgroud) 我尝试将一个集合视图添加到今日扩展,并指定每行3个项目的项目,并设置截面插入为20,顶部,左侧,底部和右侧.当我在单视图应用程序中执行此操作时,一切都像预期的那样,但是当我以编程方式为Today Extension执行相同操作时,集合视图看起来不同,尤其是右侧和底部的空间似乎与单视图应用程序中的不同.这有什么区别的原因是什么?我期望今天扩展的行为与单视图应用程序中的行为相同.
为了更好地理解我的问题,下面是单视图应用程序和今日扩展的代码,两者都带有屏幕截图:
单视图应用程序的ViewController:
import UIKit
class ViewController: UIViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource {
var collectionView: UICollectionView!
let sectionInsets = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)
let itemsPerRow: CGFloat = 3
override func viewDidLoad() {
super.viewDidLoad()
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.sectionInset = sectionInsets
collectionView = UICollectionView(frame: view.frame, collectionViewLayout: layout)
collectionView.dataSource = self
collectionView.delegate = self
collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "cellId")
collectionView.backgroundColor = .white
view.addSubview(collectionView)
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 6
}
func …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写单元测试,目前我尝试测试接收数据的 viewController viewDidLoad(),数据是在 alamofire 请求之后设置的。问题是,在我的测试函数中,当我检查成功请求后应该用 10 个元素填充的数组时,它是 0。我已经检查viewDidLoad()过测试中是否没有执行,但应该是,因为当我刚刚将元素添加到请求之外的另一个数组中,具体测试有效。我想,这与请求有关,到目前为止我还没有找到答案。
这是代码(这个带有解释的问题,帮助我执行了 viewController 的 viewDidLoad() ):
ViewController简化:
class ViewController: UIViewController {
var itemsFromRequest: [Int] = []
var itemsWithoutRequest: [Int] = []
override func viewDidLoad() {
super.viewDidLoad()
// array with 10 elements
itemsWithoutRequest = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Alamofire.request(url: URLConvertible).responseJSON { response in
//...error handling, parsing etc.
// set array after successful response
self.itemsFromRequest = responseData
}
}
}
Run Code Online (Sandbox Code Playgroud)
ViewControllerTests 类: …
例如,我有两个复选框,而我的目标是如果复选框1被选中,复选框2也被选中。如果未选中复选框1,则也将选中复选框2。如何在不单击复选框的情况下更改其状态?
我尝试在此处使用 Passport.js Auth Webhook Boilerplate在我的应用程序中设置自定义身份验证。我按照自述文件并尝试首先在本地测试设置。我可以使用 API 通过 Postman 成功创建用户/signup,并使用/loginAPI 接收令牌。我实现了一个简单的登录表单,并尝试使用已创建的用户的用户名和密码向 API 发出请求/login,然后我收到带有令牌的响应并将其保存在本地存储中以将其添加到Authorization: Bearer <token>标头中。然后,当我尝试访问已发出 graphQL 请求的页面时,我只得到了 this Error: GraphQL error: Internal Server Error。在不通过 Webhook 使用身份验证处理的情况下,通过使用HASURA_GRAPHQL_ADMIN_SECRET标头中的 可以毫无问题地工作。这个我昨天已经试过了。今天,当我像昨天一样在本地启动所有服务器时,我什至无法通过 Postman 获得成功的请求。值得一提的是,我添加了HASURA_GRAPHQL_AUTH_HOOK-> http://localhost:8081/webhook(我从授权标头中删除了管理密钥以启用 Webhook),并且还为用户设置了访问 todos 表的权限,如下所示
我可能做错了什么?这是我的设置。如果您需要更多信息,请与我们联系
这是为了让 Hasura GraphQL 引擎和 Postgres 作为 Docker 容器运行,如下所示(我的docker-compose.yaml文件):
version: '3.6'
services:
postgres:
image: postgres
restart: always
ports:
- "5432:5432"
volumes:
- db_data:/var/lib/postgresql/data
graphql-engine:
image: hasura/graphql-engine:v1.0.0-beta.6
ports:
- …Run Code Online (Sandbox Code Playgroud) swift ×4
swift3 ×3
macos ×2
alamofire ×1
checkbox ×1
docker ×1
graphql ×1
hasura ×1
ios ×1
javascript ×1
many-to-many ×1
nestjs ×1
nsbutton ×1
nspasteboard ×1
partials ×1
ruby ×1
state ×1
typeorm ×1
typescript ×1
unit-testing ×1
xctest ×1