我有一个带有搜索栏的tableview.搜索栏由UISearchController提供.当我将搜索栏添加到表的标题视图时,表的第一行将被搜索栏覆盖.
如何防止搜索栏隐藏第一行?
我在viewDidLoad中有这个片段:
self.searchController = UISearchController(searchResultsController: nil)
self.searchController.searchResultsUpdater = self
self.searchController.searchBar.delegate = self
self.tableView.tableHeaderView = self.searchController.searchBar
self.searchController.dimsBackgroundDuringPresentation = false
self.searchController.searchBar.sizeToFit()
Run Code Online (Sandbox Code Playgroud) 我正在使用我的用户界面,试图通过一大堆嵌套的NSSplitViewControllers,NSTabViewControllers等来导航我的数据.
在某些时候,我得到这些错误警告.我不知道他们来自哪里,甚至在哪里看.该应用程序似乎工作正常.
什么是CGSUpdateManager,为什么抱怨?
void CGSUpdateManager::log() const: conn 0xdbbb token 0x2ffffffffffdc78 Backtrace (at 5543.57):
void CGSUpdateManager::log() const: 0 CoreGraphics 0x00007fff85db9215 CGSBacktraceCreate + 59
void CGSUpdateManager::log() const: 1 CoreGraphics 0x00007fff85dd8688 _ZN16CGSUpdateManager14disable_updateEv + 84
void CGSUpdateManager::log() const: 2 AppKit 0x00007fff897f3de5 -[NSWindow disableScreenUpdatesUntilFlush] + 127
void CGSUpdateManager::log() const: 3 AppKit 0x00007fff897b3250 -[NSView _gainedLayerTreeHostAncestor] + 385
void CGSUpdateManager::log() const: 4 AppKit 0x00007fff897b30ae -[NSView _recursiveGainedLayerTreeHostAncestor] + 27
void CGSUpdateManager::log() const: 5 AppKit 0x00007fff897b767a -[NSScroller _recursiveGainedLayerTreeHostAncestor] + 103
void CGSUpdateManager::log() const: 6 AppKit 0x00007fff89a1ea56 -[NSScroller _setSurfaceBacked:] + …Run Code Online (Sandbox Code Playgroud) 我正在学习如何在我的iOS/OSX项目中添加应用内购买收据验证.
有一个很好的概述这里和WWDC14对这个话题好影片.
大量的示例代码,但每个人都跳了一步.如何导入openSSL标头.swift编译器抱怨没有这样的模块.
import Foundation
import StoreKit
import openssl //no such module ???
Run Code Online (Sandbox Code Playgroud)
在编写一行代码之前,我已经陷入困境.openssl框架隐藏在哪里?
目前正在寻找快速指针.
UnsafePointer并UnsafeMutablePointer提供指向字节的指针.通过使用指针运算,您可以访问其余的字节.
类似的东西可以用a来完成UnsafeMutableBufferPointer,它有一个endIndex参数.那么在访问例如字节时使用UnsafeMutableBufferPointerover 的优点/区别是什么?UnsafeMutablePointerNSData
我正在观看Apple关于Metal和MetalKit的介绍视频.
着色器的示例代码具有这些双括号,如[[buffer(0)]]参数.为什么有两个括号?这是否意味着什么,或者只是表明关键字"缓冲区"跟随?标准c ++中没有这样的构造,有吗?
vertex Vertex vertex_func(constant Vertex *vertices [[buffer(0)]],
constant Uniforms &uniforms [[buffer(1)]],
uint vid [[vertex_id]])
Run Code Online (Sandbox Code Playgroud)
还有什么是一个好的1或2周有趣的项目作为GP-GPU的介绍?对于具有良好数学技能但没有艺术技能的新手来说,这是可以管理的.
我正在尝试使用iOS应用程序的文件包来定义UTI类型.在谷歌搜索并查看Xcode.plist中的条目后,我尝试了一些事情,但一直遇到问题.我的应用程序创建了一些测试文档,然后尝试使用我的自定义UTI读取这些文件.
如果我没有指定"LSItemContentTypes",那么finder会正确地将它们视为包.但是mdls将"dyn.longstring"作为kMDItemContentType返回.
如果我指定"LSItemContentTypes",则kMDItemContentType是正确的.但是finder将其视为文件夹.
在这两种情况下,我通过UTI
[url getResourceValue:&UTI
forKey:NSURLTypeIdentifierKey
error:nil];
Run Code Online (Sandbox Code Playgroud)
是不正确的.它要么返回"dyn.longstring",要么返回"public.folder".我的应用程序因为UTI不正确而未加载这些文件.我可以改写这个但是想用UTI的正确方法做到这一点.
我将iOS文件包定义为文档类型并导出UTI类型,如下所示.我在俯瞰什么?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>tdp</string>
</array>
<key>CFBundleTypeName</key>
<string>MyFilePackage</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSItemContentTypes</key>
<array>
<string>reverse.dns.ios.package</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>Default</string>
<key>LSIsAppleDefaultForType</key>
<true/>
<key>LSTypeIsPackage</key>
<true/>
</dict>
</array>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename.extension</key>
<array>
<string>tdp</string>
</array>
</dict>
<key>UTTypeIdentifier</key>
<string>reverse.dns.ios.package</string>
<key>UTTypeConformsTo</key>
<array>
<string>com.apple.package</string>
<string>public.composite-content</string>
</array>
</dict>
</array>
</plist>
Run Code Online (Sandbox Code Playgroud) 我不确定这个函数的作用或应该做什么。
\nvoid CGContextSetTextMatrix (\n CGContextRef c,\n CGAffineTransform t\n);\nRun Code Online (Sandbox Code Playgroud)\n参考资料并不是那么有帮助。:(
\n\n\n设置当前文本矩阵。
\n文本矩阵指定从文本空间到用户空间的变换。为了生成用于在页面上实际绘制文本的最终文本渲染矩阵,Quartz 将文本矩阵与当前变换矩阵和图形状态中的其他参数连接起来。
\n注意,文本矩阵不是图形状态的一部分\xe2\x80\x94保存或恢复图形状态对文本矩阵没有影响。文本矩阵是图形上下文的属性,而不是当前字体的属性。”
\n
你能给我解释一下吗?
\n我有一个由几个自定义NSTableCellView组成的tableView.一些视图必须与NSProgressIndicator一起显示计时器(已经过了多少时间).
我创建了一个计时器(带有中央显示器),每100毫秒我用setNeedsDisplay更新textView(或swift中的.needsDisplay = true).
我在具有NSTextField的常规视图中工作的代码很好,但是一旦文本字段是NSTableCellView的一部分,它就无法工作.计时器触发,但不重绘该字段.
如果我从viewController中每100毫秒重新加载整个表,它也无法工作.在任何情况下重新加载整个表都不是一个好的解决方案,因为选择每100毫秒丢失一次并且用户不能再编辑(常规)单元格.
那么我应该如何每秒在整个tableview的几个单元格中重新加载一个特定的textField呢?
@IBDesignable class ProgressCellView : NSTableCellView
{
//MARK: properties
@IBInspectable var clock : Bool = false //should this type of cell show a clock? (is set to true in interface builder)
private lazy var formatter = TimeIntervalFormatter() //move to view controller?: 1 timer for the entire table => but then selection is lost
private var timer : dispatch_source_t!
private var isRunning : Bool = false
//MARK: init
override func awakeFromNib()
{
self.timeIndex?.formatter = formatter …Run Code Online (Sandbox Code Playgroud) 有没有更好的方法来做到这一点?看起来更好的语法明智的东西?
let a : [Any] = [5,"a",6]
for item in a {
if let assumedItem = item as? Int {
print(assumedItem)
}
}
Run Code Online (Sandbox Code Playgroud)
这样的东西,然后用正确的语法?
for let item in a as? Int { print(item) }
Run Code Online (Sandbox Code Playgroud) 这是我的第一个 cmake 文件。我有一个带有 clang 和 g++ 的 linux 系统。还安装了 libc++。我在 Mac (xcode) 上开发但部署到 linux。我正在编写一个 cmake 文件,我可以在其中选择 clang 或 g++ 和 libc++ 或 libstdc++。所以有 4 种可能的组合。
我想出了如何选择编译器并在其上强制使用 c++11,但我无法弄清楚如何指定标准库。有什么建议?
这是我到目前为止:
## cmake ###
cmake_minimum_required (VERSION 3.5)
#set project directories
set(ProjectDirectory ${CMAKE_SOURCE_DIR}) #.../Project/
set(BuildDirectory ${ProjectDirectory}/Build)
set(ProductDirectory ${ProjectDirectory}/Products)
set(sourceDirectory ${ProjectDirectory}/Source)
#print project directories
message(${ProjectDirectory})
message(${BuildDirectory})
message(${ProductDirectory})
#configure cmake
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ProductDirectory})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${ProductDirectory})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${ProductDirectory})
set(CMAKE_VERBOSE_MAKEFILE on)
#compiler and standard library settings
set(CMAKE_CXX_COMPILER "clang++")
set(CMAKE_CXX_STANDARD 11)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -v -stdlib=libc++")
#libstdc++ #linux
#libc++ #OS X …Run Code Online (Sandbox Code Playgroud)