Как Вы рисуете текст в пользовательском представлении с помощью Objective C?

Вы можете взять карту, собрать максимальное количество осадков в месте и получить новый массив объектов с результатом.

const
    weatherArray = [{ Date: "5-1-19", Location: "New York", Rainfall: 4 }, { Date: "5-1-19", Location: "Miami", Rainfall: 8 }, { Date: "5-1-20", Location: "New York", Rainfall: 9 }, { Date: "5-1-20", Location: "Miami", Rainfall: 2 }, { Date: "5-1-21", Location: "New York", Rainfall: 10 }, { Date: "5-1-21", Location: "Chicago", Rainfall: 9 }],
    filterData = (inputArray) => {
        return Array.from(
            inputArray.reduce((m, { Location, Rainfall }) =>
                m.set(Location, Math.max(m.get(Location) || 0, Rainfall)), new Map),
            ([Location, Rainfall]) => ({ Location, Rainfall })
        );
    };
  
console.log(filterData(weatherArray));
.as-console-wrapper { max-height: 100% !important; top: 0; }

С датой.

const
    weatherArray = [{ Date: "5-1-19", Location: "New York", Rainfall: 4 }, { Date: "5-1-19", Location: "Miami", Rainfall: 8 }, { Date: "5-1-20", Location: "New York", Rainfall: 9 }, { Date: "5-1-20", Location: "Miami", Rainfall: 2 }, { Date: "5-1-21", Location: "New York", Rainfall: 10 }, { Date: "5-1-21", Location: "Chicago", Rainfall: 9 }],
    filterData = (inputArray) => {
        return Array.from(inputArray
            .reduce((m, o) => {
                var temp = m.get(o.Location)
                return temp && temp.Rainfall > o.Rainfall
                    ? m
                    : m.set(o.Location, o);
            }, new Map)
            .values()
        );
    };
  
console.log(filterData(weatherArray));
.as-console-wrapper { max-height: 100% !important; top: 0; }

11
задан Jason Roberts 3 March 2009 в 02:42
поделиться

2 ответа

Вы могли попробовать что-то вдоль этих строк:

//note we are using the convenience method, so we don't need to autorelease the object
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[NSFont fontWithName:@"Helvetica" size:26], NSFontAttributeName,[NSColor blackColor], NSForegroundColorAttributeName, nil];

NSAttributedString * currentText=[[NSAttributedString alloc] initWithString:@"Cat" attributes: attributes];

NSSize attrSize = [currentText size];
[currentText drawAtPoint:NSMakePoint(yourX, yourY)];
23
ответ дан 3 December 2019 в 04:14
поделиться

NSText является представлением (а именно, суперкласс NSTextView).

Существует несколько способов нарисовать текст, с и без атрибутов (шрифты, цвета, стили абзаца, и т.д.). Посмотрите дополнения AppKit к NSString и к NSAttributedString.

2
ответ дан 3 December 2019 в 04:14
поделиться