我有这个Objective-C代码:
- (IBAction)selectFileButtonAction:(id)sender {
//create open panel...
NSOpenPanel* openPanel = [NSOpenPanel openPanel];
// NSLog(@"Open Panel");
//set restrictions / allowances...
[openPanel setAllowsMultipleSelection: NO];
[openPanel setCanChooseDirectories:NO];
[openPanel setCanCreateDirectories:NO];
[openPanel setCanChooseFiles:YES];
//only allow images...
[openPanel setAllowedFileTypes:[NSImage imageFileTypes]];
//open panel as sheet on main window...
[openPanel beginWithCompletionHandler:^(NSInteger result) {
if (result == NSFileHandlingPanelOKButton) {
//get url (should only be one due to restrictions)...
for( NSURL* URL in [openPanel URLs] ) {
// self.roundClockView1.URL = URL ;
_thePath = URL;
currentSelectedFileName = [[URL path] lastPathComponent]; …Run Code Online (Sandbox Code Playgroud) 如何从系统中获取一周中的数据(NSDate我认为)?
到现在为止,我只能参加当天的活动,但我希望能够在阵容中度过所有工作日.
如果将星期的第一天设置为星期一,我的数组将如下所示:
[ Mon, Tue, Wed... ]
Run Code Online (Sandbox Code Playgroud)
如果星期的第一天是星期日,我的数组看起来像:
[Sun, Mon, Tue... ]
Run Code Online (Sandbox Code Playgroud)
码:
let dateNow = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond | .CalendarUnitYear , fromDate: dateNow)
/*This is the way how i take system time */
let format = NSDateFormatter()
format.dateFormat = "EEE"
stringDay = format.stringFromDate(dateNow)
Run Code Online (Sandbox Code Playgroud) 我想知道是否有任何方法以编程方式重新启动我的应用程序.这是一个mac os应用程序,我在swift中使用Xcode 6.
程序很简单,在给定时间我想重新启动我的应用程序.我想我需要一个简单的助手,但我不确定.
我尝试在我的swift应用程序中使用自定义字体,但它们不加载.
我复制了我的资源文件夹中的fonts.ttf,并在Info.plist中的"应用程序提供的字体"键下添加了名称.
我尝试使用.plist中的"应用程序字体资源路径"键,但没有结果.这是我用来应用我的字体的代码.我试过:"MyFont.ttf"和"MyFont"
@IBOutlet weak var label:NSTextField!
override func awakeFromNib() {
label.font = NSFont(name: "MyFont.ttf", size: 15)
}
Run Code Online (Sandbox Code Playgroud) 我有一个NSTableView(基于视图)谁从NSarrayController显示信息.所有连接均由IB制成.一切正常,但蓝色选择颜色看起来不符合我的设计理念,所以我想用我自己的颜色改变这种颜色,但直到现在我都失败了.
class MyTable: NSTableView, NSTableViewDelegate {
override func drawBackgroundInClipRect(clipRect: NSRect) {
if self.isRowSelected( self.selectedRow ){
//NSColor.brownColor().colorWithAlphaComponent(0.9).setFill()
// NSBezierPath.fillRect(clipRect)
println("selected")
}
}
}
Run Code Online (Sandbox Code Playgroud)
我真正的问题是:我不知道我应该从哪里开始,子类,NSTableView,NSTableCellView等.
最近我发现了一个方法来说明我应该继承NSTableRowView,并覆盖drawSelectionInRect函数.我已经这样做了,但在IB中我没有NSTableRowView对象.
谢谢.
我在NSUserDefaults中保存颜色有一个小问题.在objective-c很容易:
-(NSColor *)colorForKey:(NSString *)key{
NSData *data;
NSColor *color;
data = [[NSUserDefaults standardUserDefaults] objectForKey:key];
color= [NSUnarchiver unarchiveObjectWithData:data];
if( ! [color isKindOfClass:[NSColor class]] ){
color = nil;
}
return color;
}
-(void)setColor:(NSColor *)color forKey:(NSString *)key{
NSData *data = [NSArchiver archivedDataWithRootObject:color];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:key];
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在objective-c中工作正常,但是当我尝试在swift中编写相同的代码时,我在从NSUserDefaults读取颜色时收到错误.
func saveColorForKey (color:NSColor , key:NSString ) {
var data:NSData = NSData()
data = NSArchiver.archivedDataWithRootObject(color)
NSUserDefaults.standardUserDefaults().setObject(data, forKey: key)
}
func colorForKey(key:NSString) -> NSColor{
var data: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey(key)
var color: AnyObject? = NSUnarchiver.unarchiveObjectWithData(data? as NSData)
return color …Run Code Online (Sandbox Code Playgroud) 您知道我如何获得该控件子类 NSSegmentedControl/NSSegmentedControlCell 吗?
我尝试重写 NSSegmentedControlCell 中的一些方法,但我还没有接近获得我想要的。
override func drawSegment(segment: Int, inFrame frame: NSRect, withView controlView: NSView) {
let bez = NSBezierPath(roundedRect: frame, xRadius: 3, yRadius: 3)
NSColor.lightGrayColor().set()
bez.stroke()
if self.selectedSegment != segment {
bez.fill()
}
//super.drawSegment(segment, inFrame: frame, withView: controlView)
}
override func drawInteriorWithFrame(cellFrame: NSRect, inView controlView: NSView) {
//
}
Run Code Online (Sandbox Code Playgroud)
drawInteriorWithFrame 应该让我可以按照我想要的方式绘制背景(只是clearColor,带边框),但它仍然具有默认的 lightGrayColor。
谢谢。
我有这个用Objective c编写的代码:
NSRect textRect = NSMakeRect(42, 35, 117, 55);
{
NSString* textContent = @"Hello, World!";
NSMutableParagraphStyle* textStyle = NSMutableParagraphStyle.defaultParagraphStyle.mutableCopy;
textStyle.alignment = NSCenterTextAlignment;
NSDictionary* textFontAttributes = @{NSFontAttributeName: [NSFont fontWithName: @"Helvetica" size: 12], NSForegroundColorAttributeName: NSColor.blackColor, NSParagraphStyleAttributeName: textStyle};
[textContent drawInRect: NSOffsetRect(textRect, 0, 1 - (NSHeight(textRect) - NSHeight([textContent boundingRectWithSize: textRect.size options: NSStringDrawingUsesLineFragmentOrigin attributes: textFontAttributes])) / 2) withAttributes: textFontAttributes];
}
Run Code Online (Sandbox Code Playgroud)
现在,我想在swift中编写这段代码.这就是我到现在所拥有的:
let textRect = NSMakeRect(42, 35, 117, 55)
let textTextContent = NSString(string: "Hello, World!")
let textStyle = NSMutableParagraphStyle.defaultParagraphStyle().mutableCopy() as NSMutableParagraphStyle
textStyle.alignment = NSTextAlignment.CenterTextAlignment
let textFontAttributes …Run Code Online (Sandbox Code Playgroud) 我有一个NSTabViewController附有6个标签NSViewController的。从IB,我可以从一些预定义的过渡中进行选择,但我不喜欢其中任何一个。所以我的问题是:我如何进行自己的过渡?
PS:我在我的项目中使用StoryBoards。
I have a problem while I try to prevent a cursor from changing.
I try to put an overlay view over entire window, but, if under that overlay exist an NSTextView, this will force cursor to change. I want to prevent that, and keep the arrow cursor until my overlay view will be removed.
Overriding the cursorUpdate method does not work:
override func cursorUpdate(with event: NSEvent) {
return
}
Run Code Online (Sandbox Code Playgroud)
Thanks!
即使这个问题的答案也无济于事。此解决方案仅在叠加视图小于 TextView 时有效。
今天,我发现了一些奇怪的事:
我想在swift中编写这段代码:
NSData *data = [myImage representationUsingType: NSPNGFileType properties: nil];
Run Code Online (Sandbox Code Playgroud)
在swift中,它看起来像这样:
var data: NSData = imageToSave?.representationUsingType( NSPNGFileType ,
properties: nil)
Run Code Online (Sandbox Code Playgroud)
问题是编译器说:"使用未解析的标识符'NSPNGFileType'".有谁知道为什么?
谢谢,对不起我的英文!
我尝试制作一个应用程序,现在我应该在屏幕分辨率发生变化时进行一些更改,但我找不到如何拦截此事件。
你有什么想法我怎么能参加那个活动?
swift ×12
macos ×8
objective-c ×4
osx-yosemite ×4
cocoa ×3
xcode ×2
xcode6 ×2
custom-font ×1
nscursor ×1
nsopenpanel ×1
nstableview ×1
nsview ×1
storyboard ×1